From 1dcf5502137efe36d01b30169d4387438ad47be0 Mon Sep 17 00:00:00 2001 From: Paulo Cesar Pereira de Andrade Date: Sat, 29 Nov 2008 04:55:58 -0200 Subject: avoid gcc warnings for libSM Patch from http://bugs.freedesktop.org/show_bug.cgi?id=17968 adapted to current sources. This corrects a potential (hypothetical) segmentation fault. --- src/SMlibint.h | 20 ++++++-------------- src/sm_client.c | 6 ++++-- 2 files changed, 10 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/SMlibint.h b/src/SMlibint.h index 0569c3f..387f0bd 100644 --- a/src/SMlibint.h +++ b/src/SMlibint.h @@ -207,11 +207,9 @@ in this Software without prior written authorization from The Open Group. #define STORE_ARRAY8(_pBuf, _len, _array8) \ { \ STORE_CARD32 (_pBuf, _len); \ - if (_array8) \ - memcpy (_pBuf, _array8, _len); \ - _pBuf += _len; \ - if (PAD64 (4 + _len)) \ - _pBuf += PAD64 (4 + _len); \ + if (_len) \ + memcpy (_pBuf, _array8, _len); \ + _pBuf += _len + PAD64 (4 + _len); \ } #define STORE_LISTOF_PROPERTY(_pBuf, _count, _props) \ @@ -244,9 +242,7 @@ in this Software without prior written authorization from The Open Group. _array8 = (char *) malloc (_len + 1); \ memcpy (_array8, _pBuf, _len); \ _array8[_len] = '\0'; \ - _pBuf += _len; \ - if (PAD64 (4 + _len)) \ - _pBuf += PAD64 (4 + _len); \ + _pBuf += _len + PAD64 (4 + _len); \ } #define EXTRACT_ARRAY8_AS_STRING(_pBuf, _swap, _string) \ @@ -256,9 +252,7 @@ in this Software without prior written authorization from The Open Group. _string = (char *) malloc (_len + 1); \ memcpy (_string, _pBuf, _len); \ _string[_len] = '\0'; \ - _pBuf += _len; \ - if (PAD64 (4 + _len)) \ - _pBuf += PAD64 (4 + _len); \ + _pBuf += _len + PAD64 (4 + _len); \ } #define EXTRACT_LISTOF_PROPERTY(_pBuf, _swap, _count, _props) \ @@ -290,9 +284,7 @@ in this Software without prior written authorization from The Open Group. { \ CARD32 _len; \ EXTRACT_CARD32 (_pBuf, _swap, _len); \ - _pBuf += _len; \ - if (PAD64 (4 + _len)) \ - _pBuf += PAD64 (4 + _len); \ + _pBuf += _len + PAD64 (4 + _len); \ } #define SKIP_LISTOF_PROPERTY(_pBuf, _swap) \ diff --git a/src/sm_client.c b/src/sm_client.c index 778a740..de79452 100644 --- a/src/sm_client.c +++ b/src/sm_client.c @@ -197,7 +197,9 @@ char *errorStringRet; * Now register the client */ - len = previousId ? strlen (previousId) : 0; + if (!previousId) + previousId = ""; + len = strlen (previousId); extra = ARRAY8_BYTES (len); IceGetHeaderExtra (iceConn, _SmcOpcode, SM_RegisterClient, @@ -263,7 +265,7 @@ char *errorStringRet; SIZEOF (smRegisterClientMsg), WORD64COUNT (extra), smRegisterClientMsg, pMsg, pData); - STORE_ARRAY8 (pData, 0, NULL); + STORE_ARRAY8 (pData, 0, ""); IceFlush (iceConn); -- cgit v1.2.1