From bbc373c1b94227f497cafbd3a54a86386f098e26 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 14 Mar 2011 10:59:47 -0700 Subject: [PATCH] Fixed lack of initialization of now-used pointers. --- protocols/vnc/src/vnc_client.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/protocols/vnc/src/vnc_client.c b/protocols/vnc/src/vnc_client.c index 912e11d3..92cb7238 100644 --- a/protocols/vnc/src/vnc_client.c +++ b/protocols/vnc/src/vnc_client.c @@ -219,8 +219,10 @@ rfbBool guac_vnc_malloc_framebuffer(rfbClient* rfb_client) { vnc_guac_client_data* guac_client_data = (vnc_guac_client_data*) gc->data; /* Free old buffers */ - guac_free_png_buffer(guac_client_data->png_buffer, guac_client_data->buffer_height); - guac_free_png_buffer(guac_client_data->png_buffer_alpha, guac_client_data->buffer_height); + if (guac_client_data->png_buffer != NULL) + guac_free_png_buffer(guac_client_data->png_buffer, guac_client_data->buffer_height); + if (guac_client_data->png_buffer_alpha != NULL) + guac_free_png_buffer(guac_client_data->png_buffer_alpha, guac_client_data->buffer_height); /* Allocate new buffers */ guac_client_data->png_buffer = guac_alloc_png_buffer(rfb_client->width, rfb_client->height, 3); /* No-alpha */ @@ -351,13 +353,15 @@ int guac_client_init(guac_client* client, int argc, char** argv) { read_only = 1; /* Freed after use by libvncclient */ - guac_client_data->password = malloc(64); - strncpy(guac_client_data->password, argv[3], 63); + guac_client_data->password = strdup(argv[4]); /*** INIT RFB CLIENT ***/ rfb_client = rfbGetClient(8, 3, 4); /* 32-bpp client */ + /* Store Guac client in rfb client */ + rfbClientSetClientData(rfb_client, __GUAC_CLIENT, client); + /* Framebuffer update handler */ rfb_client->GotFrameBufferUpdate = guac_vnc_update; rfb_client->GotCopyRect = guac_vnc_copyrect; @@ -376,13 +380,12 @@ int guac_client_init(guac_client* client, int argc, char** argv) { rfb_client->GetPassword = guac_vnc_get_password; /* Hook into allocation so we can handle resize. */ + guac_client_data->png_buffer = NULL; + guac_client_data->png_buffer_alpha = NULL; guac_client_data->rfb_MallocFrameBuffer = rfb_client->MallocFrameBuffer; rfb_client->MallocFrameBuffer = guac_vnc_malloc_framebuffer; rfb_client->canHandleNewFBSize = 1; - /* Store Guac client in rfb client */ - rfbClientSetClientData(rfb_client, __GUAC_CLIENT, client); - /* Set hostname and port */ rfb_client->serverHost = strdup(argv[0]); rfb_client->serverPort = atoi(argv[1]);