diff mbox

build: remove compile warning

Message ID 1370490936-11327-1-git-send-email-xiawenc@linux.vnet.ibm.com
State New
Headers show

Commit Message

Wayne Xia June 6, 2013, 3:55 a.m. UTC
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(-)

Comments

Stefan Hajnoczi June 6, 2013, 8:22 a.m. UTC | #1
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
Peter Maydell June 6, 2013, 9:16 a.m. UTC | #2
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 mbox

Patch

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) {