64bit: Fix crash in dtexec
authorMarcin Cieslak <saper@saper.info>
Thu, 23 Aug 2012 14:40:38 +0000 (16:40 +0200)
committerJon Trulson <jon@radscan.com>
Fri, 24 Aug 2012 01:56:43 +0000 (19:56 -0600)
No ANSI prototype for malloc() caused
the returned pointer to be truncated
to 32 bits.

cde/lib/DtSvc/DtUtil2/DtGetMessage.c
cde/lib/DtSvc/DtUtil2/MsgLog.c
cde/programs/dtexec/Main.c

index 527a3486c6d67e2729a652314485c6511128a223..b1fe32cf1019b0fdd936a334662259fe338fec27 100644 (file)
@@ -40,6 +40,7 @@
 
 #ifndef NO_MESSAGE_CATALOG
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <nl_types.h>
 #include "DtSvcLock.h"
index 8d3dd82aa27a39d40fba05bcfd0635afa31eb964..0aa48d1d5ec43928bb63e93d1015d5bf27aa612e 100644 (file)
@@ -145,7 +145,7 @@ static char * get_file_name (
        va_list         args;
 
        file = malloc(MAXPATHLEN+1);
-       if (! file) return;
+       if (! file) return NULL;
 
        Va_start (args, format);
 
index 3c359f009ac0294f9585dc3b2d8b847922881bc7..71f77eee6a9884c2de2417927725c4238122b49b 100644 (file)
@@ -59,6 +59,9 @@
 #include "osdep.h"     /* select(2) mask width and bit manipulation macros */
 #include <Tt/tt_c.h>
 #include <locale.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <Dt/MsgLog.h>
 
@@ -320,7 +323,7 @@ Help(
  *****************************************************************************/
 
 static void
-#if defined(__aix) || defined (__osf__)
+#if defined(__aix) || defined (__osf__) || defined(__FreeBSD__)
 PanicSignal(int s)
 #else
 PanicSignal(void)
@@ -357,7 +360,7 @@ PanicSignal(void)
  *****************************************************************************/
 
 static void
-#if defined(__aix) || defined (__osf__)
+#if defined(__aix) || defined (__osf__) || defined(__FreeBSD__)
 IgnoreSignal(int i)
 #else
 IgnoreSignal(void)
@@ -399,7 +402,7 @@ IgnoreSignal(void)
  *****************************************************************************/
 
 static void
-#if defined(__aix) || defined (__osf__)
+#if defined(__aix) || defined (__osf__) || defined(__FreeBSD__)
 UrgentSignal(int i)
 #else
 UrgentSignal(void)
@@ -450,7 +453,7 @@ UrgentSignal(void)
  *
  *****************************************************************************/
 static void
-#if defined(__aix) || defined (__osf__)
+#if defined(__aix) || defined (__osf__) || defined(__FreeBSD__)
 SigCld(int i)
 #else
 SigCld(void)
@@ -769,7 +772,7 @@ ParseCommandLine(
 #endif /* _DTEXEC_NLS16 */
 
             if (tick2)
-               *tick2 = NULL;
+               *tick2 = 0;
 
 #ifdef _DTEXEC_NLS16
            tick1 = (char *) Dt_strrchr( dtSvcProcIdG, '_' );
@@ -778,8 +781,8 @@ ParseCommandLine(
 #endif /* _DTEXEC_NLS16 */
 
            if ( tick1 && tick2 ) {
-               *tick1 = NULL;
-               *tick2 = NULL;
+               *tick1 = 0;
+               *tick2 = 0;
 
                dtSvcInvIdG = atoi((char *) (tick1 + 1));
                dtSvcChildIdG = atoi((char *) (tick2 + 1));
@@ -1520,7 +1523,7 @@ main (
                 * a SIGCLD, give up and exit.
                 */
                if (rediscoverUrgentSigG > ((1000/SHORT_SELECT_TIMEOUT)*5) ) {
-#if defined(__aix) || defined (__osf__)
+#if defined(__aix) || defined (__osf__) || defined(__FreeBSD__)
                    PanicSignal(0);
 #else
                    PanicSignal();