summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-11-29 04:55:58 -0200
committerPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-11-29 04:55:58 -0200
commit1dcf5502137efe36d01b30169d4387438ad47be0 (patch)
tree0bac65e122f51c1be7c5f1643c9ecda60566d9a2
parent8bed01275a7c7caf8f777e4074a5ee1ba1c2b3e7 (diff)
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.
-rw-r--r--src/SMlibint.h20
-rw-r--r--src/sm_client.c6
2 files changed, 10 insertions, 16 deletions
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);