diff options
-rw-r--r-- | src/SMlibint.h | 20 | ||||
-rw-r--r-- | src/sm_client.c | 6 |
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); |