[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