[PATCH]Valgind: a complaint about uninitialized bytes
Maxim Dounin
mdounin at mdounin.ru
Tue Jun 11 15:30:20 UTC 2013
Hello!
On Wed, Jun 12, 2013 at 12:20:10AM +0900, cubicdaiya wrote:
> Hi, I'm sorry.
>
> As I mistook my name in changeset,
> could you take a look at the following patch, too?
>
> # HG changeset patch
> # User Tatsuhiko Kubo <cubicdaiya at gmail.com>
> # Date 1370963498 -32400
> # Node ID fe954e402fd5b1292f9d5039454f327f8939999a
> # Parent 725fb71ab1a60bd48b0afb8b001b5349f5054cb1
> Valgrind: a complaint about uninitialized bytes
>
> Valgrind outputs the following message
> when NGX_HAVE_MSGHDR_MSG_CONTROL is 1.
>
> ==12605== Syscall param socketcall.sendmsg(msg.msg_control) points to
> uninitialised byte(s)
> ==12605== at 0x4E37660: __sendmsg_nocancel (syscall-template.S:82)
> ==12605== by 0x41C9BF: ngx_write_channel (ngx_channel.c:77)
> ==12605== by 0x41E2DC: ngx_pass_open_channel (ngx_process_cycle.c:454)
> ==12605== by 0x41E3B6: ngx_start_worker_processes
> (ngx_process_cycle.c:371)
> ==12605== by 0x41F368: ngx_master_process_cycle (ngx_process_cycle.c:136)
> ==12605== by 0x404A19: main (nginx.c:412)
> ==12605== Address 0x7ff000614 is on thread 1's stack
>
> diff -r 725fb71ab1a6 -r fe954e402fd5 src/os/unix/ngx_channel.c
> --- a/src/os/unix/ngx_channel.c Fri Jun 07 13:16:00 2013 -0700
> +++ b/src/os/unix/ngx_channel.c Wed Jun 12 00:11:38 2013 +0900
> @@ -26,6 +26,8 @@
> char space[CMSG_SPACE(sizeof(int))];
> } cmsg;
>
> + ngx_memzero(&cmsg, sizeof(cmsg));
> +
> if (ch->fd == -1) {
> msg.msg_control = NULL;
> msg.msg_controllen = 0;
The memzero call is certainly only needed in case of fd != -1
(i.e., to suppress valgrind warning).
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx-devel
mailing list