]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs.c: Integer overflow minor fix.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 7 Jul 2011 22:45:25 +0000 (15:45 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 7 Jul 2011 22:45:25 +0000 (15:45 -0700)
(heap_bss_diff): Now uprintmax_t, not unsigned long.  All used changed.
Define only if GNU_LINUX.
(main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.

src/ChangeLog
src/emacs.c

index e2cf24fc17301984b672f19e073bd50aa39633c7..0265828c60e7fb3cbf8b0ca35bcb1ee02cf1eb44 100644 (file)
@@ -1,5 +1,10 @@
 2011-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * emacs.c: Integer overflow minor fix.
+       (heap_bss_diff): Now uprintmax_t, not unsigned long.  All used changed.
+       Define only if GNU_LINUX.
+       (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
+
        * dispnew.c: Integer signedness and overflow fixes.
        Remove unnecessary forward decls, that were a maintenance hassle.
        (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
index e4b3a68a6c161557f51a6a8fc7c15a06695f2b5f..6f6d1babd031cb95d70d8732eafcb1b98a4f2bf1 100644 (file)
@@ -166,8 +166,10 @@ char *stack_bottom;
 /* The address where the heap starts (from the first sbrk (0) call).  */
 static void *my_heap_start;
 
+#ifdef GNU_LINUX
 /* The gap between BSS end and heap start as far as we can tell.  */
-static unsigned long heap_bss_diff;
+static uprintmax_t heap_bss_diff;
+#endif
 
 /* Nonzero means running Emacs without interactive terminal.  */
 int noninteractive;
@@ -713,6 +715,7 @@ main (int argc, char **argv)
   setenv ("G_SLICE", "always-malloc", 1);
 #endif
 
+#ifdef GNU_LINUX
   if (!initialized)
     {
       extern char my_endbss[];
@@ -723,6 +726,7 @@ main (int argc, char **argv)
 
       heap_bss_diff = (char *)my_heap_start - max (my_endbss, my_endbss_static);
     }
+#endif
 
 #ifdef RUN_TIME_REMAP
   if (initialized)
@@ -2131,7 +2135,7 @@ You must run Emacs in batch mode in order to dump it.  */)
     {
       fprintf (stderr, "**************************************************\n");
       fprintf (stderr, "Warning: Your system has a gap between BSS and the\n");
-      fprintf (stderr, "heap (%lu bytes).  This usually means that exec-shield\n",
+      fprintf (stderr, "heap (%"pMu" bytes).  This usually means that exec-shield\n",
                heap_bss_diff);
       fprintf (stderr, "or something similar is in effect.  The dump may\n");
       fprintf (stderr, "fail because of this.  See the section about\n");