projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
syscall instrumentation: handle copy_from_user return value
[lttng-modules.git]
/
instrumentation
/
syscalls
/
headers
/
x86-64-syscalls-3.10.0-rc7_pointers_override.h
diff --git
a/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h
b/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h
index 7a8812c6fcf686f194942791bd7c5136be8e3db7..5e402a5a80b06aa23ea00730d39833d1d769df4a 100644
(file)
--- a/
instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h
+++ b/
instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h
@@
-29,9
+29,10
@@
SC_LTTNG_TRACEPOINT_EVENT_CODE(connect,
if (addrlen < sizeof(struct sockaddr_in6))
goto skip_code;
(void) get_user(tp_locvar->dport, &((struct sockaddr_in6 *) uservaddr)->sin6_port);
if (addrlen < sizeof(struct sockaddr_in6))
goto skip_code;
(void) get_user(tp_locvar->dport, &((struct sockaddr_in6 *) uservaddr)->sin6_port);
-
(void)
copy_from_user(tp_locvar->v6addr,
+
if (
copy_from_user(tp_locvar->v6addr,
&((struct sockaddr_in6 *) uservaddr)->sin6_addr.in6_u.u6_addr8,
&((struct sockaddr_in6 *) uservaddr)->sin6_addr.in6_u.u6_addr8,
- sizeof(tp_locvar->v6addr));
+ sizeof(tp_locvar->v6addr)))
+ memset(tp_locvar->v6addr, 0, sizeof(tp_locvar->v6addr));
tp_locvar->v6addr_len = 8;
break;
}
tp_locvar->v6addr_len = 8;
break;
}
@@
-94,9
+95,10
@@
SC_LTTNG_TRACEPOINT_EVENT_CODE(accept,
if (tp_locvar->uaddr_len < sizeof(struct sockaddr_in6))
goto skip_code;
(void) get_user(tp_locvar->sport, &((struct sockaddr_in6 *) upeer_sockaddr)->sin6_port);
if (tp_locvar->uaddr_len < sizeof(struct sockaddr_in6))
goto skip_code;
(void) get_user(tp_locvar->sport, &((struct sockaddr_in6 *) upeer_sockaddr)->sin6_port);
-
(void)
copy_from_user(tp_locvar->v6addr,
+
if (
copy_from_user(tp_locvar->v6addr,
&((struct sockaddr_in6 *) upeer_sockaddr)->sin6_addr.in6_u.u6_addr8,
&((struct sockaddr_in6 *) upeer_sockaddr)->sin6_addr.in6_u.u6_addr8,
- sizeof(tp_locvar->v6addr));
+ sizeof(tp_locvar->v6addr)))
+ memset(tp_locvar->v6addr, 0, sizeof(tp_locvar->v6addr));
tp_locvar->v6addr_len = 8;
break;
}
tp_locvar->v6addr_len = 8;
break;
}
This page took
0.026038 seconds
and
4
git commands to generate.