]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/smartall.c
Fix bat crash due to alignment diff in bat and core code
[bacula/bacula] / bacula / src / lib / smartall.c
index a0a57d278b870a59182ace9ed66741c7f8988d8f..acc27295aeb2615d1f17dd68a4d262fd7d5a8a5b 100644 (file)
@@ -134,7 +134,7 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes)
       head->ablineno = (sm_ushort)lineno;
       head->abin_use = true;
       /* Emplace end-clobber detector at end of buffer */
-      buf[nbytes - 1] = (uint8_t)((((long) buf) & 0xFF) ^ 0xC5);
+      buf[nbytes - 1] = (uint8_t)((((intptr_t) buf) & 0xFF) ^ 0xC5);
       buf += HEAD_SIZE;  /* Increment to user data start */
       if (++sm_buffers > sm_max_buffers) {
          sm_max_buffers = sm_buffers;
@@ -212,7 +212,7 @@ void sm_free(const char *file, int line, void *fp)
       allocated  space in the buffer by comparing the end of buffer
       checksum with the address of the buffer.  */
 
-   if (((unsigned char *)cp)[head->ablen - 1] != ((((long) cp) & 0xFF) ^ 0xC5)) {
+   if (((unsigned char *)cp)[head->ablen - 1] != ((((intptr_t) cp) & 0xFF) ^ 0xC5)) {
       V(mutex);
       Emsg2(M_ABORT, 0, _("Buffer overrun called from %s:%d\n"), file, line);
    }
@@ -463,7 +463,7 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
             bad |= 0x2;
          }
          if (((unsigned char *) ap)[((struct abufhead *)ap)->ablen - 1] !=
-              ((((long) ap) & 0xFF) ^ 0xC5)) {
+              ((((intptr_t) ap) & 0xFF) ^ 0xC5)) {
             bad |= 0x4;
          }
       } else {