1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Index: sys/compat/linux/linux_ioctl.c
===================================================================
--- a/sys/compat/linux/linux_ioctl.c (revision 242578)
+++ b/sys/compat/linux/linux_ioctl.c (working copy)
@@ -2260,8 +2260,9 @@ again:
ifc.ifc_len = valid_len;
sbuf_finish(sb);
- memcpy(PTRIN(ifc.ifc_buf), sbuf_data(sb), ifc.ifc_len);
- error = copyout(&ifc, uifc, sizeof(ifc));
+ error = copyout(sbuf_data(sb), PTRIN(ifc.ifc_buf), ifc.ifc_len);
+ if (error == 0)
+ error = copyout(&ifc, uifc, sizeof(ifc));
sbuf_delete(sb);
CURVNET_RESTORE();
|