diff -urp nginx-1.2.8/src/os/unix/ngx_channel.c nginx-1.2.8-patched/src/os/unix/ngx_channel.c
--- nginx-1.2.8/src/os/unix/ngx_channel.c	2012-01-18 07:07:43.000000000 -0800
+++ nginx-1.2.8-patched/src/os/unix/ngx_channel.c	2012-09-17 11:33:09.215394217 -0700
@@ -31,6 +31,8 @@ ngx_write_channel(ngx_socket_t s, ngx_ch
         msg.msg_controllen = 0;
 
     } else {
+        ngx_memzero(&cmsg, sizeof(cmsg));
+
         msg.msg_control = (caddr_t) &cmsg;
         msg.msg_controllen = sizeof(cmsg);
 
diff -urp nginx-1.2.8/src/os/unix/ngx_process_cycle.c nginx-1.2.8-patched/src/os/unix/ngx_process_cycle.c
--- nginx-1.2.8/src/os/unix/ngx_process_cycle.c	2012-07-02 09:23:14.000000000 -0700
+++ nginx-1.2.8-patched/src/os/unix/ngx_process_cycle.c	2012-09-17 11:33:09.214394215 -0700
@@ -356,6 +356,8 @@ ngx_start_worker_processes(ngx_cycle_t *
 
     ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "start worker processes");
 
+    ngx_memzero(&ch, sizeof(ngx_channel_t));
+
     ch.command = NGX_CMD_OPEN_CHANNEL;
 
     for (i = 0; i < n; i++) {
@@ -463,6 +465,8 @@ ngx_signal_worker_processes(ngx_cycle_t
     ngx_err_t      err;
     ngx_channel_t  ch;
 
+    ngx_memzero(&ch, sizeof(ngx_channel_t));
+
 #if (NGX_BROKEN_SCM_RIGHTS)
 
     ch.command = 0;
@@ -564,6 +568,8 @@ ngx_reap_children(ngx_cycle_t *cycle)
     ngx_channel_t     ch;
     ngx_core_conf_t  *ccf;
 
+    ngx_memzero(&ch, sizeof(ngx_channel_t));
+
     ch.command = NGX_CMD_CLOSE_CHANNEL;
     ch.fd = -1;