mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-21 18:27:22 +00:00
hptmv: Handle errors from copyout() in hpt_set_info()
This is in preparation for annotating copyin() and related functions with __result_use_check. MFC after: 1 week
This commit is contained in:
parent
2873d841f8
commit
b4a9e6d814
|
@ -338,13 +338,13 @@ hpt_set_info(int length)
|
||||||
|
|
||||||
if (err==0) {
|
if (err==0) {
|
||||||
if (piop->nOutBufferSize)
|
if (piop->nOutBufferSize)
|
||||||
copyout(ke_area + piop->nInBufferSize, (void*)(ULONG_PTR)piop->lpOutBuffer, piop->nOutBufferSize);
|
err = -copyout(ke_area + piop->nInBufferSize, (void*)(ULONG_PTR)piop->lpOutBuffer, piop->nOutBufferSize);
|
||||||
|
|
||||||
if (piop->lpBytesReturned)
|
if (err == 0 && piop->lpBytesReturned)
|
||||||
copyout(&dwRet, (void*)(ULONG_PTR)piop->lpBytesReturned, sizeof(DWORD));
|
err = -copyout(&dwRet, (void*)(ULONG_PTR)piop->lpBytesReturned, sizeof(DWORD));
|
||||||
|
|
||||||
free(ke_area, M_DEVBUF);
|
free(ke_area, M_DEVBUF);
|
||||||
return length;
|
return err == 0 ? length : err;
|
||||||
}
|
}
|
||||||
else KdPrintW(("Kernel_ioctl(): return %d\n", err));
|
else KdPrintW(("Kernel_ioctl(): return %d\n", err));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue