Revision: 22931 http://trac.macosforge.org/projects/launchd/changeset/22931 Author: zarzycki@apple.com Date: 2006-11-02 13:22:06 -0800 (Thu, 02 Nov 2006) Log Message: ----------- Avoid sprintf() where we can. Modified Paths: -------------- trunk/launchd/src/launchd.c trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c trunk/launchd/src/libvproc.c Modified: trunk/launchd/src/launchd.c =================================================================== --- trunk/launchd/src/launchd.c 2006-11-01 21:43:30 UTC (rev 22930) +++ trunk/launchd/src/launchd.c 2006-11-02 21:22:06 UTC (rev 22931) @@ -272,7 +272,7 @@ } if (h) { - sprintf(ldconf, "%s/%s", h, LAUNCHD_CONF); + snprintf(ldconf, sizeof(ldconf), "%s/%s", h, LAUNCHD_CONF); } rlcj = job_new(root_job, READCONF_LABEL, LAUNCHCTL_PATH, NULL, ldconf, MACH_PORT_NULL); Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2006-11-01 21:43:30 UTC (rev 22930) +++ trunk/launchd/src/launchd_core_logic.c 2006-11-02 21:22:06 UTC (rev 22931) @@ -715,11 +715,11 @@ } /* preflight the string so we know how big it is */ - sprintf(buf, "%s.%s", sizeof(void *) == 8 ? "0xdeadbeeffeedface" : "0xbabecafe", basename((char *)argv[0])); + snprintf(buf, sizeof(buf), "%s.%s", sizeof(void *) == 8 ? "0xdeadbeeffeedface" : "0xbabecafe", basename((char *)argv[0])); j = job_new(jbs, buf, NULL, argv, NULL, MACH_PORT_NULL); - sprintf(j->label, "%p.%s", j, basename(j->argv[0])); + snprintf(j->label, strlen(j->label) + 1, "%p.%s", j, basename(j->argv[0])); free(argv); @@ -830,7 +830,7 @@ char newlabel[1000], *procname = "unknown"; job_t jr; - sprintf(newlabel, "%u.anonymous", MACH_PORT_INDEX(p->bs_port)); + snprintf(newlabel, sizeof(newlabel), "%u.anonymous", MACH_PORT_INDEX(p->bs_port)); if ((jr = job_new(p, newlabel, procname, NULL, NULL, MACH_PORT_NULL))) { jr->anonymous = true; @@ -1746,7 +1746,7 @@ if (sipc) { job_assumes(j, close(spair[0]) == 0); - sprintf(nbuf, "%d", spair[1]); + snprintf(nbuf, sizeof(nbuf), "%d", spair[1]); setenv(LAUNCHD_TRUSTED_FD_ENV, nbuf, 1); } job_start_child(j, execspair[1]); @@ -2133,9 +2133,9 @@ o = job_prep_log_preface(j, newmsg); if (err) { - sprintf(newmsg + o, ": %s: %s", msg, strerror(err)); + snprintf(newmsg + o, sizeof(newmsg) - o, ": %s: %s", msg, strerror(err)); } else { - sprintf(newmsg + o, ": %s", msg); + snprintf(newmsg + o, sizeof(newmsg) - o, ": %s", msg); } if (j->debug) { @@ -2409,7 +2409,7 @@ } for (i = 0; i < sg->fd_cnt; i++) - buf_off += sprintf(buf + buf_off, " %d", sg->fds[i]); + buf_off += snprintf(buf + buf_off, sizeof(buf) - buf_off, " %d", sg->fds[i]); job_log(j, LOG_DEBUG, "Ignoring Sockets:%s", buf); @@ -2428,7 +2428,7 @@ } for (i = 0; i < sg->fd_cnt; i++) - buf_off += sprintf(buf + buf_off, " %d", sg->fds[i]); + buf_off += snprintf(buf + buf_off, sizeof(buf) - buf_off, " %d", sg->fds[i]); job_log(j, LOG_DEBUG, "Watching sockets:%s", buf); @@ -2963,7 +2963,7 @@ goto out_bad; } - sprintf(j->label, "%d", MACH_PORT_INDEX(j->bs_port)); + snprintf(j->label, strlen(j->label) + 1, "%d", MACH_PORT_INDEX(j->bs_port)); /* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */ mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem); @@ -3280,7 +3280,7 @@ char pidstr[100]; pid_t sp; - sprintf(pidstr, "%u", j->p); + snprintf(pidstr, sizeof(pidstr), "%u", j->p); switch ((sp = fork())) { case -1: Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2006-11-01 21:43:30 UTC (rev 22930) +++ trunk/launchd/src/launchd_runtime.c 2006-11-02 21:22:06 UTC (rev 22931) @@ -678,7 +678,7 @@ return; } - sprintf(newmsg, "p%u pp%u\t", getpid(), getppid()); + snprintf(newmsg, sizeof(newmsg), "p%u pp%u\t", getpid(), getppid()); for (i = 0, j = strlen(newmsg); message[i];) { if (message[i] == '%' && message[i + 1] == 'm') { Modified: trunk/launchd/src/libvproc.c =================================================================== --- trunk/launchd/src/libvproc.c 2006-11-01 21:43:30 UTC (rev 22930) +++ trunk/launchd/src/libvproc.c 2006-11-02 21:22:06 UTC (rev 22931) @@ -193,8 +193,7 @@ { char flat_msg[3000]; - snprintf(flat_msg, sizeof(flat_msg) - 1, msg, ap); - flat_msg[sizeof(flat_msg) - 1] = '\0'; + vsnprintf(flat_msg, sizeof(flat_msg), msg, ap); vproc_mig_log(bootstrap_port, pri, err, flat_msg); }
participants (1)
-
source_changes@macosforge.org