diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2010-04-26 13:26:20 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2010-04-26 13:26:20 +0000 |
commit | 50f6ee7bd5cecb308ccf6284b0a44595adcf3903 (patch) | |
tree | 7153467c98f3de5892b65d2d3cd6f6104e4062ed | |
parent | 5a8f21c5354ba883225eb1cd3ef013d5c8f79a90 (diff) | |
download | libnsfb-50f6ee7bd5cecb308ccf6284b0a44595adcf3903.tar.gz |
ensure reply is not leaked if server does not support shared memory
svn path=/trunk/libnsfb/; revision=10489
-rw-r--r-- | src/surface/x.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/surface/x.c b/src/surface/x.c index 6fddfca..356b1bf 100644 --- a/src/surface/x.c +++ b/src/surface/x.c @@ -497,10 +497,15 @@ create_shm_image(xstate_t *xstate, int width, int height, int bpp) ck = xcb_shm_query_version(xstate->connection); rep = xcb_shm_query_version_reply(xstate->connection, ck , NULL); - if ((!rep) || - (rep->major_version < 1) || - (rep->major_version == 1 && rep->minor_version == 0)) { - fprintf (stderr, "No or insufficient shm support...\n"); + if (!rep) { + fprintf (stderr, "Server has no shm support.\n"); + return NULL; + } + + if((rep->major_version < 1) || + (rep->major_version == 1 && rep->minor_version == 0)) { + fprintf (stderr, "server SHM support is insufficient.\n"); + free(rep); return NULL; } free(rep); |