dtcm: Resolve CID 87822
[oweals/cde.git] / cde / programs / dtcm / server / svcmain.c
index 08785f84d63d371c4c251caeb9068b811ca861b4..7e14fc8539ff1d809443f8f5d16954c941025ad4 100644 (file)
  *  (c) Copyright 1993, 1994 Sun Microsystems, Inc.
  */
 
+#if defined(linux)
+#define _POSIX_C_SOURCE 2
+#endif
+
 #include <EUSCompat.h>
 #include <stdio.h>
 #include <errno.h>
@@ -108,7 +112,7 @@ _GetGtime(char *timestr)
        }
 
        minute = atoi(&timestr[len - 2]);
-       timestr[len - 2] = NULL;
+       timestr[len - 2] = '\0';
        hour = atoi(timestr);
 
        if (hour > 23 || minute > 59)
@@ -269,7 +273,9 @@ init_dir()
        }
 
        /* Change current directory, so core file can be dumped. */
-       chdir (dir);
+       if(-1 == chdir (dir)) {
+               perror(strerror(errno));
+       }
 }
 
 /*
@@ -698,7 +704,8 @@ main(int argc, char **argv)
 
                if (udp_transp == (SVCXPRT *)-1) {
                        udp_transp = svcudp_create(standalone ? RPC_ANYSOCK : 0
-#if defined(_AIX) || defined(hpV4) || defined(__osf__) || defined(linux)
+#if defined(_AIX) || defined(hpV4) || defined(__osf__) || defined(linux) || \
+       defined(CSRG_BASED)
                                        );
 #else
                                        ,0,0);
@@ -749,8 +756,12 @@ main(int argc, char **argv)
        setgid (daemon_gid);
        setuid (daemon_uid);
 #else
-       setegid (daemon_gid);
-       seteuid (daemon_uid);
+       if(-1 == setegid (daemon_gid)) {
+               perror(strerror(errno));
+       }
+       if(-1 == seteuid (daemon_uid)) {
+               perror(strerror(errno));
+       }
 #endif /* HPUX */
 #endif /* AIX */