X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Fheaders%2Fx86-64-syscalls-3.10.0-rc7_pointers_override.h;h=5e402a5a80b06aa23ea00730d39833d1d769df4a;hb=b7150b71f0b34c5412d77b7c25bc5b210d5cef87;hp=efdfc37c991527473108eae9237cc9d1c52d4c61;hpb=7ca580f8aca4f8c2b9e0066ad52ebfc226b3d645;p=lttng-modules.git 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 efdfc37c..5e402a5a 100644 --- 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 @@ -1,7 +1,7 @@ #ifndef CREATE_SYSCALL_TABLE #define OVERRIDE_64_connect -SC_LTTNG_TRACE_EVENT(connect, +SC_LTTNG_TRACEPOINT_EVENT_CODE(connect, TP_PROTO(sc_exit(long ret,) int fd, struct sockaddr * uservaddr, int addrlen), TP_ARGS(sc_exit(ret,) fd, uservaddr, addrlen), TP_locvar( @@ -29,9 +29,10 @@ SC_LTTNG_TRACE_EVENT(connect, 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, - sizeof(tp_locvar->v6addr)); + sizeof(tp_locvar->v6addr))) + memset(tp_locvar->v6addr, 0, sizeof(tp_locvar->v6addr)); tp_locvar->v6addr_len = 8; break; } @@ -62,7 +63,7 @@ SC_LTTNG_TRACE_EVENT(connect, ) #define OVERRIDE_64_accept -SC_LTTNG_TRACE_EVENT(accept, +SC_LTTNG_TRACEPOINT_EVENT_CODE(accept, TP_PROTO(sc_exit(long ret,) int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), TP_ARGS(sc_exit(ret,) fd, upeer_sockaddr, upeer_addrlen), TP_locvar( @@ -94,9 +95,10 @@ SC_LTTNG_TRACE_EVENT(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); - (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, - sizeof(tp_locvar->v6addr)); + sizeof(tp_locvar->v6addr))) + memset(tp_locvar->v6addr, 0, sizeof(tp_locvar->v6addr)); tp_locvar->v6addr_len = 8; break; }