Message ID | 1370490936-11327-1-git-send-email-xiawenc@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On Thu, Jun 06, 2013 at 11:55:36AM +0800, Wenchao Xia wrote: > This patch simply remove "variable may be used uninitialized" warning. > > Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> > --- > libcacard/vscclient.c | 2 +- > util/iov.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libcacard/vscclient.c b/libcacard/vscclient.c > index ac23647..815f453 100644 > --- a/libcacard/vscclient.c > +++ b/libcacard/vscclient.c > @@ -641,7 +641,7 @@ main( > GIOChannel *channel_stdin; > char *qemu_host; > char *qemu_port; > - VSCMsgHeader mhHeader; > + VSCMsgHeader mhHeader = {0}; > > VCardEmulOptions *command_line_options = NULL; The code looks broken to me: main() { VSCMsgHeader mhHeader; ... send_msg(VSC_Init, mhHeader.reader_id, &init, sizeof(init)); This is really an uninitialized use of mhHeader.read_id. But it gets more interesting: static int send_msg( VSCMsgType type, uint32_t reader_id, const void *msg, unsigned int length ) { VSCMsgHeader mhHeader; qemu_mutex_lock(&socket_to_send_lock); if (verbose > 10) { printf("sending type=%d id=%u, len =%u (0x%x)\n", type, reader_id, length, length); } mhHeader.type = htonl(type); mhHeader.reader_id = 0; mhHeader.length = htonl(length); g_byte_array_append(socket_to_send, (guint8 *)&mhHeader, sizeof(mhHeader)); g_byte_array_append(socket_to_send, (guint8 *)msg, length); g_idle_add(socket_prepare_sending, NULL); qemu_mutex_unlock(&socket_to_send_lock); return 0; } This function prints reader_id if verbose > 0 but it doesn't use it! mhHeader.read_id is always set to 0. This should be cleaned up properly. The other issue you silenced looks okay. Stefan
On 6 June 2013 09:22, Stefan Hajnoczi <stefanha@gmail.com> wrote: > On Thu, Jun 06, 2013 at 11:55:36AM +0800, Wenchao Xia wrote: >> This patch simply remove "variable may be used uninitialized" warning. >> --- a/libcacard/vscclient.c >> +++ b/libcacard/vscclient.c >> @@ -641,7 +641,7 @@ main( >> GIOChannel *channel_stdin; >> char *qemu_host; >> char *qemu_port; >> - VSCMsgHeader mhHeader; >> + VSCMsgHeader mhHeader = {0}; >> >> VCardEmulOptions *command_line_options = NULL; > > The code looks broken to me: > > main() { > VSCMsgHeader mhHeader; > ... > send_msg(VSC_Init, mhHeader.reader_id, &init, sizeof(init)); > > This is really an uninitialized use of mhHeader.read_id. See the patch already on list (and my review comments on it): http://patchwork.ozlabs.org/patch/248856/ thanks -- PMM
diff --git a/libcacard/vscclient.c b/libcacard/vscclient.c index ac23647..815f453 100644 --- a/libcacard/vscclient.c +++ b/libcacard/vscclient.c @@ -641,7 +641,7 @@ main( GIOChannel *channel_stdin; char *qemu_host; char *qemu_port; - VSCMsgHeader mhHeader; + VSCMsgHeader mhHeader = {0}; VCardEmulOptions *command_line_options = NULL; diff --git a/util/iov.c b/util/iov.c index cc6e837..b91cfb9 100644 --- a/util/iov.c +++ b/util/iov.c @@ -146,7 +146,7 @@ ssize_t iov_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt, { ssize_t total = 0; ssize_t ret; - size_t orig_len, tail; + size_t orig_len = 0, tail; unsigned niov; while (bytes > 0) {
This patch simply remove "variable may be used uninitialized" warning. Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> --- libcacard/vscclient.c | 2 +- util/iov.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)