]> rtime.felk.cvut.cz Git - sojka/can-utils.git/commitdiff
slcand: replace char pointers with static char buffers
authorOliver Hartkopp <socketcan@hartkopp.net>
Thu, 6 Jan 2011 19:20:18 +0000 (19:20 +0000)
committerOliver Hartkopp <socketcan@hartkopp.net>
Thu, 6 Jan 2011 19:20:18 +0000 (19:20 +0000)
The buffers to build the pathnames had been malloc'ed and never been free'd.
This patch removes the malloc stuff entirely.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
slcand.c

index 0d55a11c663ad98a9d54cc055586d436c7a7c3cc..90d4570d792d3e37f1e2a6d6d943b7b415017d2d 100644 (file)
--- a/slcand.c
+++ b/slcand.c
 /* Change this to the user under which to run */
 #define RUN_AS_USER "root"
 
+/* The length of ttypath buffer */
+#define TTYPATH_LENGTH 64
+
+/* The length of pidfile name buffer */
+#define PIDFILE_LENGTH 64
+
 #define EXIT_SUCCESS 0
 #define EXIT_FAILURE 1
 
@@ -99,9 +105,9 @@ static void daemonize (const char *lockfile, char *tty, char *name)
        FILE * pFile;
        char const *pidprefix = "/var/run/";
        char const *pidsuffix = ".pid";
-       char *pidfile;
-       pidfile = malloc((strlen(pidprefix) +strlen(DAEMON_NAME) + strlen(tty) + strlen(pidsuffix) + 1) * sizeof(char));
-       sprintf(pidfile, "%s%s-%s%s", pidprefix, DAEMON_NAME, tty, pidsuffix);
+       char pidfile[PIDFILE_LENGTH];
+
+       snprintf(pidfile, PIDFILE_LENGTH, "%s%s-%s%s", pidprefix, DAEMON_NAME, tty, pidsuffix);
 
        /* already a daemon */
        if (getppid () == 1)
@@ -209,7 +215,7 @@ static void daemonize (const char *lockfile, char *tty, char *name)
 int main (int argc, char *argv[])
 {
        char *tty = NULL;
-       char *ttypath;
+       char ttypath[TTYPATH_LENGTH];
        char const *devprefix = "/dev/";
        char *name = NULL;
        char buf[IFNAMSIZ+1];
@@ -235,8 +241,8 @@ int main (int argc, char *argv[])
        if (pch == tty) {
                print_usage(argv[0]);
        }
-       ttypath = malloc((strlen(devprefix) + strlen(tty)) * sizeof(char));
-       sprintf (ttypath, "%s%s", devprefix, tty);
+
+       snprintf (ttypath, TTYPATH_LENGTH, "%s%s", devprefix, tty);
        syslog (LOG_INFO, "starting on TTY device %s", ttypath);
 
        /* Daemonize */