<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre, #msg p { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[23640] trunk/launchd/src</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.macosforge.org/projects/launchd/changeset/23640">23640</a></dd>
<dt>Author</dt> <dd>zarzycki@apple.com</dd>
<dt>Date</dt> <dd>2008-06-04 14:57:47 -0700 (Wed, 04 Jun 2008)</dd>
</dl>

<h3>Log Message</h3>
<pre>Preparing to crank up the warning level...</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunklaunchdsrcMakefileam">trunk/launchd/src/Makefile.am</a></li>
<li><a href="#trunklaunchdsrcMakefilein">trunk/launchd/src/Makefile.in</a></li>
<li><a href="#trunklaunchdsrclaunchctlc">trunk/launchd/src/launchctl.c</a></li>
<li><a href="#trunklaunchdsrclaunchdc">trunk/launchd/src/launchd.c</a></li>
<li><a href="#trunklaunchdsrclaunchd_core_logicc">trunk/launchd/src/launchd_core_logic.c</a></li>
<li><a href="#trunklaunchdsrclaunchproxyc">trunk/launchd/src/launchproxy.c</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunklaunchdsrcMakefileam"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/Makefile.am (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/Makefile.am        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/Makefile.am        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><del>-CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror # gcc4.2: -Wstrict-overflow=4 # -Wpadded -Wconversion -Wstrict-aliasing=2
-CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2: -fdiagnostics-show-option # -fstrict-aliasing
-CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D__MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
</del><ins>+CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror -Wstrict-overflow=4 # -Wstrict-aliasing=2 -Wshorten-64-to-32 # -Wpadded -Wconversion
+CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing
+CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
</ins><span class="cx"> AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN)
</span><span class="cx"> AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunklaunchdsrcMakefilein"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/Makefile.in (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/Makefile.in        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/Makefile.in        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -242,9 +242,9 @@
</span><span class="cx"> target_alias = @target_alias@
</span><span class="cx"> top_builddir = @top_builddir@
</span><span class="cx"> top_srcdir = @top_srcdir@
</span><del>-CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror # gcc4.2: -Wstrict-overflow=4 # -Wpadded -Wconversion -Wstrict-aliasing=2
-CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2: -fdiagnostics-show-option # -fstrict-aliasing
-CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D__MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
</del><ins>+CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror -Wstrict-overflow=4 # -Wstrict-aliasing=2 -Wshorten-64-to-32 # -Wpadded -Wconversion
+CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing
+CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1
</ins><span class="cx"> AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN)
</span><span class="cx"> AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT)
</span><span class="cx"> CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h                \
</span></span></pre></div>
<a id="trunklaunchdsrclaunchctlc"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/launchctl.c (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/launchctl.c        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/launchctl.c        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">         launch_data_t pass1;
</span><span class="cx">         launch_data_t pass2;
</span><span class="cx">         char *session_type;
</span><del>-        unsigned int editondisk:1, load:1, forceload:1, __pad:29;
</del><ins>+        bool editondisk:1, load:1, forceload:1;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> static void myCFDictionaryApplyFunction(const void *key, const void *value, void *context);
</span><span class="lines">@@ -319,7 +319,8 @@
</span><span class="cx"> {
</span><span class="cx">         char s[1000], *c, *av[100];
</span><span class="cx">         const char *file;
</span><del>-        size_t len, i;
</del><ins>+        size_t len;
+        int i;
</ins><span class="cx">         FILE *f;
</span><span class="cx"> 
</span><span class="cx">         if (getppid() == 1) {
</span><span class="lines">@@ -332,7 +333,7 @@
</span><span class="cx">                 return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        while ((c = fgets(s, sizeof(s), f))) {
</del><ins>+        while ((c = fgets(s, (int) sizeof s, f))) {
</ins><span class="cx">                 len = strlen(c);
</span><span class="cx">                 if (len &amp;&amp; c[len - 1] == '\n') {
</span><span class="cx">                         c[len - 1] = '\0';
</span><span class="lines">@@ -916,7 +917,7 @@
</span><span class="cx">                                 return;
</span><span class="cx">                         }
</span><span class="cx">                         oldmask = umask(S_IRWXG|S_IRWXO);
</span><del>-                        if (bind(sfd, (struct sockaddr *)&amp;sun, sizeof(sun)) == -1) {
</del><ins>+                        if (bind(sfd, (struct sockaddr *)&amp;sun, (socklen_t) sizeof sun) == -1) {
</ins><span class="cx">                                 close(sfd);
</span><span class="cx">                                 umask(oldmask);
</span><span class="cx">                                 return;
</span><span class="lines">@@ -929,7 +930,7 @@
</span><span class="cx">                                 close(sfd);
</span><span class="cx">                                 return;
</span><span class="cx">                         }
</span><del>-                } else if (connect(sfd, (struct sockaddr *)&amp;sun, sizeof(sun)) == -1) {
</del><ins>+                } else if (connect(sfd, (struct sockaddr *)&amp;sun, (socklen_t) sizeof sun) == -1) {
</ins><span class="cx">                         close(sfd);
</span><span class="cx">                         return;
</span><span class="cx">                 }
</span><span class="lines">@@ -1003,17 +1004,17 @@
</span><span class="cx"> 
</span><span class="cx">                         if (hints.ai_flags &amp; AI_PASSIVE) {
</span><span class="cx">                                 if (AF_INET6 == res-&gt;ai_family &amp;&amp; -1 == setsockopt(sfd, IPPROTO_IPV6, IPV6_V6ONLY,
</span><del>-                                                        (void *)&amp;sock_opt, sizeof(sock_opt))) {
</del><ins>+                                                        (void *)&amp;sock_opt, (socklen_t) sizeof sock_opt)) {
</ins><span class="cx">                                         fprintf(stderr, &quot;setsockopt(IPV6_V6ONLY): %m&quot;);
</span><span class="cx">                                         return;
</span><span class="cx">                                 }
</span><span class="cx">                                 if (mgroup) {
</span><del>-                                        if (setsockopt(sfd, SOL_SOCKET, SO_REUSEPORT, (void *)&amp;sock_opt, sizeof(sock_opt)) == -1) {
</del><ins>+                                        if (setsockopt(sfd, SOL_SOCKET, SO_REUSEPORT, (void *)&amp;sock_opt, (socklen_t) sizeof sock_opt) == -1) {
</ins><span class="cx">                                                 fprintf(stderr, &quot;setsockopt(SO_REUSEPORT): %s\n&quot;, strerror(errno));
</span><span class="cx">                                                 return;
</span><span class="cx">                                         }
</span><span class="cx">                                 } else {
</span><del>-                                        if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, (void *)&amp;sock_opt, sizeof(sock_opt)) == -1) {
</del><ins>+                                        if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, (void *)&amp;sock_opt, (socklen_t) sizeof sock_opt) == -1) {
</ins><span class="cx">                                                 fprintf(stderr, &quot;setsockopt(SO_REUSEADDR): %s\n&quot;, strerror(errno));
</span><span class="cx">                                                 return;
</span><span class="cx">                                         }
</span><span class="lines">@@ -1108,7 +1109,7 @@
</span><span class="cx">                 if (AF_INET == family) {
</span><span class="cx">                         memset(&amp;mreq, 0, sizeof(mreq));
</span><span class="cx">                         mreq.imr_multiaddr = ((struct sockaddr_in *)res-&gt;ai_addr)-&gt;sin_addr;
</span><del>-                        if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &amp;mreq, sizeof(mreq)) == -1) {
</del><ins>+                        if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &amp;mreq, (socklen_t) sizeof mreq) == -1) {
</ins><span class="cx">                                 fprintf(stderr, &quot;setsockopt(IP_ADD_MEMBERSHIP): %s\n&quot;, strerror(errno));
</span><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="lines">@@ -1116,7 +1117,7 @@
</span><span class="cx">                 } else if (AF_INET6 == family) {
</span><span class="cx">                         memset(&amp;m6req, 0, sizeof(m6req));
</span><span class="cx">                         m6req.ipv6mr_multiaddr = ((struct sockaddr_in6 *)res-&gt;ai_addr)-&gt;sin6_addr;
</span><del>-                        if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &amp;m6req, sizeof(m6req)) == -1) {
</del><ins>+                        if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &amp;m6req, (socklen_t) sizeof m6req) == -1) {
</ins><span class="cx">                                 fprintf(stderr, &quot;setsockopt(IPV6_JOIN_GROUP): %s\n&quot;, strerror(errno));
</span><span class="cx">                                 continue;
</span><span class="cx">                         }
</span><span class="lines">@@ -1293,8 +1294,7 @@
</span><span class="cx"> help_cmd(int argc, char *const argv[])
</span><span class="cx"> {
</span><span class="cx">         FILE *where = stdout;
</span><del>-        int l, cmdwidth = 0;
-        size_t i;
</del><ins>+        size_t i, l, cmdwidth = 0;
</ins><span class="cx">         
</span><span class="cx">         if (argc == 0 || argv == NULL)
</span><span class="cx">                 where = stderr;
</span><span class="lines">@@ -1303,12 +1303,13 @@
</span><span class="cx"> 
</span><span class="cx">         for (i = 0; i &lt; (sizeof cmds / sizeof cmds[0]); i++) {
</span><span class="cx">                 l = strlen(cmds[i].name);
</span><del>-                if (l &gt; cmdwidth)
</del><ins>+                if (l &gt; cmdwidth) {
</ins><span class="cx">                         cmdwidth = l;
</span><ins>+                }
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         for (i = 0; i &lt; (sizeof cmds / sizeof cmds[0]); i++) {
</span><del>-                fprintf(where, &quot;\t%-*s\t%s\n&quot;, cmdwidth, cmds[i].name, cmds[i].desc);
</del><ins>+                fprintf(where, &quot;\t%-*s\t%s\n&quot;, (int)cmdwidth, cmds[i].name, cmds[i].desc);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return 0;
</span><span class="lines">@@ -2108,7 +2109,6 @@
</span><span class="cx"> logupdate_cmd(int argc, char *const argv[])
</span><span class="cx"> {
</span><span class="cx">         int64_t inval, outval;
</span><del>-        int i, j, m = 0;
</del><span class="cx">         bool badargs = false, maskmode = false, onlymode = false, levelmode = false;
</span><span class="cx">         static const struct {
</span><span class="cx">                 const char *name;
</span><span class="lines">@@ -2123,7 +2123,8 @@
</span><span class="cx">                 { &quot;alert&quot;,        LOG_ALERT },
</span><span class="cx">                 { &quot;emergency&quot;,        LOG_EMERG },
</span><span class="cx">         };
</span><del>-        int logtblsz = sizeof logtbl / sizeof logtbl[0];
</del><ins>+        size_t i, j, logtblsz = sizeof logtbl / sizeof logtbl[0];
+        int m = 0;
</ins><span class="cx"> 
</span><span class="cx">         if (argc &gt;= 2) {
</span><span class="cx">                 if (!strcmp(argv[1], &quot;mask&quot;))
</span><span class="lines">@@ -2140,7 +2141,7 @@
</span><span class="cx">                 m = LOG_UPTO(LOG_DEBUG);
</span><span class="cx"> 
</span><span class="cx">         if (argc &gt; 2 &amp;&amp; (maskmode || onlymode)) {
</span><del>-                for (i = 2; i &lt; argc; i++) {
</del><ins>+                for (i = 2; i &lt; (size_t)argc; i++) {
</ins><span class="cx">                         for (j = 0; j &lt; logtblsz; j++) {
</span><span class="cx">                                 if (!strcmp(argv[i], logtbl[j].name)) {
</span><span class="cx">                                         if (maskmode)
</span><span class="lines">@@ -2305,7 +2306,7 @@
</span><span class="cx">                         for (i = 0; i &lt; (lsz / sizeof(struct rlimit)); i++) {
</span><span class="cx">                                 if (argc == 2 &amp;&amp; (size_t)which != i)
</span><span class="cx">                                         continue;
</span><del>-                                fprintf(stdout, &quot;\t%-12s%-15s%-15s\n&quot;, num2name(i),
</del><ins>+                                fprintf(stdout, &quot;\t%-12s%-15s%-15s\n&quot;, num2name((int)i),
</ins><span class="cx">                                                 lim2str(lmts[i].rlim_cur, slimstr),
</span><span class="cx">                                                 lim2str(lmts[i].rlim_max, hlimstr));
</span><span class="cx">                         }
</span><span class="lines">@@ -3114,7 +3115,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (assumes(prog != NULL)) {
</span><span class="cx">                 /* The networking team has asked us to ignore the failure of this API if errno == ENOPROTOOPT */
</span><del>-                assumes(setsockopt(sfd, SOL_SOCKET, SO_EXECPATH, prog, strlen(prog) + 1) != -1 || errno == ENOPROTOOPT);
</del><ins>+                assumes(setsockopt(sfd, SOL_SOCKET, SO_EXECPATH, prog, (socklen_t)(strlen(prog) + 1)) != -1 || errno == ENOPROTOOPT);
</ins><span class="cx">         }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunklaunchdsrclaunchdc"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/launchd.c (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/launchd.c        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/launchd.c        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -398,7 +398,7 @@
</span><span class="cx">         bool new_networking_state;
</span><span class="cx">         char buf[1024];
</span><span class="cx"> 
</span><del>-        launchd_assumes(read(kev-&gt;ident, &amp;buf, sizeof(buf)) != -1);
</del><ins>+        launchd_assumes(read((int)kev-&gt;ident, &amp;buf, sizeof(buf)) != -1);
</ins><span class="cx"> 
</span><span class="cx">         new_networking_state = get_network_state();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunklaunchdsrclaunchd_core_logicc"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/launchd_core_logic.c (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/launchd_core_logic.c        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/launchd_core_logic.c        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx">         };
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static bool socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds);
</del><ins>+static bool socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds);
</ins><span class="cx"> static void socketgroup_delete(job_t j, struct socketgroup *sg);
</span><span class="cx"> static void socketgroup_watch(job_t j, struct socketgroup *sg);
</span><span class="cx"> static void socketgroup_ignore(job_t j, struct socketgroup *sg);
</span><span class="lines">@@ -357,6 +357,7 @@
</span><span class="cx">         mach_port_t wait_reply_port;        /* we probably should switch to a list of waiters */
</span><span class="cx">         uid_t mach_uid;
</span><span class="cx">         jobmgr_t mgr;
</span><ins>+        size_t argc;
</ins><span class="cx">         char **argv;
</span><span class="cx">         char *prog;
</span><span class="cx">         char *rootdir;
</span><span class="lines">@@ -379,15 +380,14 @@
</span><span class="cx">         size_t quarantine_data_sz;
</span><span class="cx"> #endif
</span><span class="cx">         pid_t p;
</span><del>-        int argc;
</del><span class="cx">         int last_exit_status;
</span><span class="cx">         int stdin_fd;
</span><span class="cx">         int fork_fd;
</span><span class="cx">         int log_redirect_fd;
</span><span class="cx">         int nice;
</span><del>-        unsigned int timeout;
-        unsigned int exit_timeout;
</del><span class="cx">         int stdout_err_fd;
</span><ins>+        uint32_t timeout;
+        uint32_t exit_timeout;
</ins><span class="cx">         uint64_t sent_signal_time;
</span><span class="cx">         uint64_t start_time;
</span><span class="cx">         uint32_t min_run_time;
</span><span class="lines">@@ -711,7 +711,7 @@
</span><span class="cx">                 launch_data_dict_insert(r, tmp, LAUNCH_JOBKEY_STANDARDERRORPATH);
</span><span class="cx">         }
</span><span class="cx">         if (likely(j-&gt;argv) &amp;&amp; (tmp = launch_data_alloc(LAUNCH_DATA_ARRAY))) {
</span><del>-                int i;
</del><ins>+                size_t i;
</ins><span class="cx"> 
</span><span class="cx">                 for (i = 0; i &lt; j-&gt;argc; i++) {
</span><span class="cx">                         if ((tmp2 = launch_data_new_string(j-&gt;argv[i]))) {
</span><span class="lines">@@ -1069,7 +1069,7 @@
</span><span class="cx"> {
</span><span class="cx">         launch_data_t tmp_oai;
</span><span class="cx">         job_t j = context;
</span><del>-        unsigned int i, fd_cnt = 1;
</del><ins>+        size_t i, fd_cnt = 1;
</ins><span class="cx">         int *fds;
</span><span class="cx"> 
</span><span class="cx">         if (launch_data_get_type(obj) == LAUNCH_DATA_ARRAY) {
</span><span class="lines">@@ -1125,7 +1125,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         /* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */
</span><del>-        mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</del><ins>+        mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</ins><span class="cx">         if (job_mig_protocol_vproc_subsystem.maxsize &gt; mxmsgsz) {
</span><span class="cx">                 mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize;
</span><span class="cx">         }
</span><span class="lines">@@ -1326,7 +1326,7 @@
</span><span class="cx">         const char *bn = NULL;
</span><span class="cx">         char *co;
</span><span class="cx">         size_t minlabel_len;
</span><del>-        int i, cc = 0;
</del><ins>+        size_t i, cc = 0;
</ins><span class="cx">         job_t j;
</span><span class="cx"> 
</span><span class="cx">         launchd_assert(offsetof(struct job_s, kqjob_callback) == 0);
</span><span class="lines">@@ -1706,15 +1706,21 @@
</span><span class="cx">                         } else if (unlikely(value &gt; UINT32_MAX)) {
</span><span class="cx">                                 job_log(j, LOG_WARNING, &quot;%s is too large. Ignoring.&quot;, LAUNCH_JOBKEY_EXITTIMEOUT);
</span><span class="cx">                         } else {
</span><del>-                                j-&gt;exit_timeout = value;
</del><ins>+                                j-&gt;exit_timeout = (typeof(j-&gt;exit_timeout)) value;
</ins><span class="cx">                         }
</span><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">         case 'n':
</span><span class="cx">         case 'N':
</span><span class="cx">                 if (strcasecmp(key, LAUNCH_JOBKEY_NICE) == 0) {
</span><del>-                        j-&gt;nice = value;
-                        j-&gt;setnice = true;
</del><ins>+                        if (unlikely(value &lt; PRIO_MIN)) {
+                                job_log(j, LOG_WARNING, &quot;%s less than %d. Ignoring.&quot;, LAUNCH_JOBKEY_NICE, PRIO_MIN);
+                        } else if (unlikely(value &gt; PRIO_MAX)) {
+                                job_log(j, LOG_WARNING, &quot;%s is greater than %d. Ignoring.&quot;, LAUNCH_JOBKEY_NICE, PRIO_MAX);
+                        } else {
+                                j-&gt;nice = (typeof(j-&gt;nice)) value;
+                                j-&gt;setnice = true;
+                        }
</ins><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">         case 't':
</span><span class="lines">@@ -1725,7 +1731,7 @@
</span><span class="cx">                         } else if (unlikely(value &gt; UINT32_MAX)) {
</span><span class="cx">                                 job_log(j, LOG_WARNING, &quot;%s is too large. Ignoring.&quot;, LAUNCH_JOBKEY_TIMEOUT);
</span><span class="cx">                         } else {
</span><del>-                                j-&gt;timeout = value;
</del><ins>+                                j-&gt;timeout = (typeof(j-&gt;timeout)) value;
</ins><span class="cx">                         }
</span><span class="cx">                 } else if (strcasecmp(key, LAUNCH_JOBKEY_THROTTLEINTERVAL) == 0) {
</span><span class="cx">                         if (value &lt; 0) {
</span><span class="lines">@@ -1733,7 +1739,7 @@
</span><span class="cx">                         } else if (value &gt; UINT32_MAX) {
</span><span class="cx">                                 job_log(j, LOG_WARNING, &quot;%s is too large. Ignoring.&quot;, LAUNCH_JOBKEY_THROTTLEINTERVAL);
</span><span class="cx">                         } else {
</span><del>-                                j-&gt;min_run_time = value;
</del><ins>+                                j-&gt;min_run_time = (typeof(j-&gt;min_run_time)) value;
</ins><span class="cx">                         }
</span><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="lines">@@ -1753,9 +1759,9 @@
</span><span class="cx">                                 job_log(j, LOG_WARNING, &quot;%s is too large. Ignoring.&quot;, LAUNCH_JOBKEY_STARTINTERVAL);
</span><span class="cx">                         } else {
</span><span class="cx">                                 runtime_add_weak_ref();
</span><del>-                                j-&gt;start_interval = value;
</del><ins>+                                j-&gt;start_interval = (typeof(j-&gt;start_interval)) value;
</ins><span class="cx"> 
</span><del>-                                job_assumes(j, kevent_mod((uintptr_t)&amp;j-&gt;start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, value, j) != -1);
</del><ins>+                                job_assumes(j, kevent_mod((uintptr_t)&amp;j-&gt;start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, j-&gt;start_interval, j) != -1);
</ins><span class="cx">                         }
</span><span class="cx"> #if HAVE_SANDBOX
</span><span class="cx">                 } else if (strcasecmp(key, LAUNCH_JOBKEY_SANDBOXFLAGS) == 0) {
</span><span class="lines">@@ -1948,7 +1954,7 @@
</span><span class="cx">                         if (job_assumes(j, j-&gt;j_binpref = malloc(value_cnt * sizeof(*j-&gt;j_binpref)))) {
</span><span class="cx">                                 j-&gt;j_binpref_cnt = value_cnt;
</span><span class="cx">                                 for (i = 0; i &lt; value_cnt; i++) {
</span><del>-                                        j-&gt;j_binpref[i] = launch_data_get_integer(launch_data_array_get_index(value, i));
</del><ins>+                                        j-&gt;j_binpref[i] = (cpu_type_t) launch_data_get_integer(launch_data_array_get_index(value, i));
</ins><span class="cx">                                 }
</span><span class="cx">                         }
</span><span class="cx">                 }
</span><span class="lines">@@ -2321,7 +2327,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (unlikely(j-&gt;weird_bootstrap)) {
</span><del>-                mach_msg_size_t mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</del><ins>+                mach_msg_size_t mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</ins><span class="cx"> 
</span><span class="cx">                 if (job_mig_protocol_vproc_subsystem.maxsize &gt; mxmsgsz) {
</span><span class="cx">                         mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize;
</span><span class="lines">@@ -2599,7 +2605,7 @@
</span><span class="cx"> #else
</span><span class="cx">         int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL };
</span><span class="cx"> #endif
</span><del>-        int mib_sz = sizeof(mib) / sizeof(mib[0]);
</del><ins>+        size_t mib_sz = sizeof(mib) / sizeof(mib[0]);
</ins><span class="cx">         size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc();
</span><span class="cx">         struct kinfo_proc *kp;
</span><span class="cx"> 
</span><span class="lines">@@ -2610,7 +2616,7 @@
</span><span class="cx">         if (!job_assumes(j, (kp = malloc(len)) != NULL)) {
</span><span class="cx">                 return;
</span><span class="cx">         }
</span><del>-        if (!job_assumes(j, sysctl(mib, mib_sz, kp, &amp;len, NULL, 0) != -1)) {
</del><ins>+        if (!job_assumes(j, sysctl(mib, (u_int) mib_sz, kp, &amp;len, NULL, 0) != -1)) {
</ins><span class="cx">                 goto out;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -2760,7 +2766,7 @@
</span><span class="cx">                 jobmgr_reap_bulk(jmi, kev);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if ((j = jobmgr_find_by_pid(jm, kev-&gt;ident, false))) {
</del><ins>+        if ((j = jobmgr_find_by_pid(jm, (pid_t) kev-&gt;ident, false))) {
</ins><span class="cx">                 kev-&gt;udata = j;
</span><span class="cx">                 job_callback(j, kev);
</span><span class="cx">         }
</span><span class="lines">@@ -2835,11 +2841,11 @@
</span><span class="cx">         case EVFILT_PROC:
</span><span class="cx">                 return job_callback_proc(j, kev-&gt;fflags);
</span><span class="cx">         case EVFILT_TIMER:
</span><del>-                return job_callback_timer(j, (void *)kev-&gt;ident);
</del><ins>+                return job_callback_timer(j, (void *) kev-&gt;ident);
</ins><span class="cx">         case EVFILT_VNODE:
</span><span class="cx">                 return semaphoreitem_callback(j, kev);
</span><span class="cx">         case EVFILT_READ:
</span><del>-                return job_callback_read(j, kev-&gt;ident);
</del><ins>+                return job_callback_read(j, (int) kev-&gt;ident);
</ins><span class="cx">         case EVFILT_MACHPORT:
</span><span class="cx">                 return (void)job_dispatch(j, true);
</span><span class="cx">         default:
</span><span class="lines">@@ -3014,7 +3020,7 @@
</span><span class="cx">         glob_t g;
</span><span class="cx">         short spflags = POSIX_SPAWN_SETEXEC;
</span><span class="cx">         size_t binpref_out_cnt = 0;
</span><del>-        int i;
</del><ins>+        size_t i;
</ins><span class="cx"> 
</span><span class="cx">         if (JOB_BOOTCACHE_HACK_CHECK(j)) {
</span><span class="cx">                 do_first_per_user_launchd_hack();
</span><span class="lines">@@ -3885,10 +3891,17 @@
</span><span class="cx">         job_dispatch(j, false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+struct cal_dict_walk {
+        job_t j;
+        struct tm tmptm;
+};
+
</ins><span class="cx"> void
</span><span class="cx"> calendarinterval_new_from_obj_dict_walk(launch_data_t obj, const char *key, void *context)
</span><span class="cx"> {
</span><del>-        struct tm *tmptm = context;
</del><ins>+        struct cal_dict_walk *cdw = context;
+        struct tm *tmptm = &amp;cdw-&gt;tmptm;
+        job_t j = cdw-&gt;j;
</ins><span class="cx">         int64_t val;
</span><span class="cx"> 
</span><span class="cx">         if (unlikely(LAUNCH_DATA_INTEGER != launch_data_get_type(obj))) {
</span><span class="lines">@@ -3899,16 +3912,18 @@
</span><span class="cx"> 
</span><span class="cx">         val = launch_data_get_integer(obj);
</span><span class="cx"> 
</span><del>-        if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MINUTE) == 0) {
-                tmptm-&gt;tm_min = val;
</del><ins>+        if (val &lt; 0) {
+                job_log(j, LOG_WARNING, &quot;The interval for key \&quot;%s\&quot; is less than zero.&quot;, key);
+        } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MINUTE) == 0) {
+                tmptm-&gt;tm_min = (typeof(tmptm-&gt;tm_min)) val;
</ins><span class="cx">         } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_HOUR) == 0) {
</span><del>-                tmptm-&gt;tm_hour = val;
</del><ins>+                tmptm-&gt;tm_hour = (typeof(tmptm-&gt;tm_hour)) val;
</ins><span class="cx">         } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_DAY) == 0) {
</span><del>-                tmptm-&gt;tm_mday = val;
</del><ins>+                tmptm-&gt;tm_mday = (typeof(tmptm-&gt;tm_mday)) val;
</ins><span class="cx">         } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_WEEKDAY) == 0) {
</span><del>-                tmptm-&gt;tm_wday = val;
</del><ins>+                tmptm-&gt;tm_wday = (typeof(tmptm-&gt;tm_wday)) val;
</ins><span class="cx">         } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MONTH) == 0) {
</span><del>-                tmptm-&gt;tm_mon = val;
</del><ins>+                tmptm-&gt;tm_mon = (typeof(tmptm-&gt;tm_mon)) val;
</ins><span class="cx">                 tmptm-&gt;tm_mon -= 1; /* 4798263 cron compatibility */
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="lines">@@ -3916,15 +3931,16 @@
</span><span class="cx"> bool
</span><span class="cx"> calendarinterval_new_from_obj(job_t j, launch_data_t obj)
</span><span class="cx"> {
</span><del>-        struct tm tmptm;
</del><ins>+        struct cal_dict_walk cdw;
</ins><span class="cx"> 
</span><del>-        memset(&amp;tmptm, 0, sizeof(0));
</del><ins>+        cdw.j = j;
+        memset(&amp;cdw.tmptm, 0, sizeof(0));
</ins><span class="cx"> 
</span><del>-        tmptm.tm_min = -1;
-        tmptm.tm_hour = -1;
-        tmptm.tm_mday = -1;
-        tmptm.tm_wday = -1;
-        tmptm.tm_mon = -1;
</del><ins>+        cdw.tmptm.tm_min = -1;
+        cdw.tmptm.tm_hour = -1;
+        cdw.tmptm.tm_mday = -1;
+        cdw.tmptm.tm_wday = -1;
+        cdw.tmptm.tm_mon = -1;
</ins><span class="cx"> 
</span><span class="cx">         if (!job_assumes(j, obj != NULL)) {
</span><span class="cx">                 return false;
</span><span class="lines">@@ -3934,13 +3950,13 @@
</span><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        launch_data_dict_iterate(obj, calendarinterval_new_from_obj_dict_walk, &amp;tmptm);
</del><ins>+        launch_data_dict_iterate(obj, calendarinterval_new_from_obj_dict_walk, &amp;cdw);
</ins><span class="cx"> 
</span><del>-        if (unlikely(tmptm.tm_sec == -1)) {
</del><ins>+        if (unlikely(cdw.tmptm.tm_sec == -1)) {
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        return calendarinterval_new(j, &amp;tmptm);
</del><ins>+        return calendarinterval_new(j, &amp;cdw.tmptm);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool
</span><span class="lines">@@ -4008,7 +4024,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool
</span><del>-socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds)
</del><ins>+socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds)
</ins><span class="cx"> {
</span><span class="cx">         struct socketgroup *sg = calloc(1, sizeof(struct socketgroup) + strlen(name) + 1);
</span><span class="cx"> 
</span><span class="lines">@@ -4086,7 +4102,7 @@
</span><span class="cx"> 
</span><span class="cx">         for (i = 0; i &lt; sg-&gt;fd_cnt; i++) {
</span><span class="cx">                 job_assumes(j, kev[i].flags &amp; EV_ERROR);
</span><del>-                errno = kev[i].data;
</del><ins>+                errno = (typeof(errno)) kev[i].data;
</ins><span class="cx">                 job_assumes(j, kev[i].data == 0);
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="lines">@@ -4230,7 +4246,7 @@
</span><span class="cx"> limititem_setup(launch_data_t obj, const char *key, void *context)
</span><span class="cx"> {
</span><span class="cx">         job_t j = context;
</span><del>-        int i, limits_cnt = (sizeof(launchd_keys2limits) / sizeof(launchd_keys2limits[0]));
</del><ins>+        size_t i, limits_cnt = (sizeof(launchd_keys2limits) / sizeof(launchd_keys2limits[0]));
</ins><span class="cx">         rlim_t rl;
</span><span class="cx"> 
</span><span class="cx">         if (launch_data_get_type(obj) != LAUNCH_DATA_INTEGER) {
</span><span class="lines">@@ -4581,14 +4597,15 @@
</span><span class="cx"> 
</span><span class="cx">         switch (launch_data_get_type(obj)) {
</span><span class="cx">         case LAUNCH_DATA_INTEGER:
</span><del>-                which_port = launch_data_get_integer(obj);
</del><ins>+                which_port = (int)launch_data_get_integer(obj); /* XXX we should bound check this... */
</ins><span class="cx">                 if (strcasecmp(key, LAUNCH_JOBKEY_MACH_TASKSPECIALPORT) == 0) {
</span><span class="cx">                         switch (which_port) {
</span><span class="cx">                         case TASK_KERNEL_PORT:
</span><span class="cx">                         case TASK_HOST_PORT:
</span><span class="cx">                         case TASK_NAME_PORT:
</span><span class="cx">                         case TASK_BOOTSTRAP_PORT:
</span><del>-                        /* I find it a little odd that zero isn't reserved in the header */
</del><ins>+                        /* I find it a little odd that zero isn't reserved in the header.
+                         * Normally Mach is fairly good about this convention... */
</ins><span class="cx">                         case 0:
</span><span class="cx">                                 job_log(ms-&gt;job, LOG_WARNING, &quot;Tried to set a reserved task special port: %d&quot;, which_port);
</span><span class="cx">                                 break;
</span><span class="lines">@@ -4885,7 +4902,7 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 if (trusted_fd) {
</span><del>-                        int dfd, lfd = strtol(trusted_fd, NULL, 10);
</del><ins>+                        int dfd, lfd = (int) strtol(trusted_fd, NULL, 10);
</ins><span class="cx"> 
</span><span class="cx">                         if ((dfd = dup(lfd)) &gt;= 0) {
</span><span class="cx">                                 jobmgr_assumes(jmr, runtime_close(dfd) != -1);
</span><span class="lines">@@ -4911,7 +4928,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         /* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */
</span><del>-        mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</del><ins>+        mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
</ins><span class="cx">         if (job_mig_protocol_vproc_subsystem.maxsize &gt; mxmsgsz) {
</span><span class="cx">                 mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize;
</span><span class="cx">         }
</span><span class="lines">@@ -5245,6 +5262,7 @@
</span><span class="cx">         char pidstr[100];
</span><span class="cx">         char *sample_args[] = { &quot;sample&quot;, pidstr, &quot;1&quot;, &quot;-unsupportedShowArch&quot;, &quot;-mayDie&quot;, &quot;-file&quot;, logfile, NULL };
</span><span class="cx">         char *contents = NULL;
</span><ins>+        size_t contents_sz;
</ins><span class="cx">         int logfile_fd = -1;
</span><span class="cx">         int console_fd = -1;
</span><span class="cx">         int wstatus;
</span><span class="lines">@@ -5308,17 +5326,23 @@
</span><span class="cx">                 goto out;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        contents = malloc(sb.st_size);
</del><ins>+        if (sizeof (size_t) == 4 &amp;&amp; !job_assumes(j, !(sb.st_size &amp; 0xffffffff00000000llu))) {
+                goto out;
+        }
</ins><span class="cx"> 
</span><ins>+        contents_sz = (size_t) sb.st_size;
+
+        contents = malloc(contents_sz);
+
</ins><span class="cx">         if (!job_assumes(j, contents != NULL)) {
</span><span class="cx">                 goto out;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!job_assumes(j, read(logfile_fd, contents, sb.st_size) == sb.st_size)) {
</del><ins>+        if (!job_assumes(j, read(logfile_fd, contents, contents_sz) == (ssize_t) contents_sz)) {
</ins><span class="cx">                 goto out;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        job_assumes(j, write(console_fd, contents, sb.st_size) == sb.st_size);
</del><ins>+        job_assumes(j, write(console_fd, contents, contents_sz) == (ssize_t) contents_sz);
</ins><span class="cx"> 
</span><span class="cx"> out:
</span><span class="cx">         if (contents) {
</span><span class="lines">@@ -6012,13 +6036,13 @@
</span><span class="cx">                 j-&gt;ondemand = !inval;
</span><span class="cx">                 break;
</span><span class="cx">         case VPROC_GSK_START_INTERVAL:
</span><del>-                if ((uint64_t)inval &gt; UINT32_MAX) {
</del><ins>+                if (inval &gt; UINT32_MAX || inval &lt; 0) {
</ins><span class="cx">                         kr = 1;
</span><span class="cx">                 } else if (inval) {
</span><span class="cx">                         if (j-&gt;start_interval == 0) {
</span><span class="cx">                                 runtime_add_weak_ref();
</span><span class="cx">                         }
</span><del>-                        j-&gt;start_interval = inval;
</del><ins>+                        j-&gt;start_interval = (typeof(j-&gt;start_interval)) inval;
</ins><span class="cx">                         job_assumes(j, kevent_mod((uintptr_t)&amp;j-&gt;start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, j-&gt;start_interval, j) != -1);
</span><span class="cx">                 } else if (j-&gt;start_interval) {
</span><span class="cx">                         job_assumes(j, kevent_mod((uintptr_t)&amp;j-&gt;start_interval, EVFILT_TIMER, EV_DELETE, 0, 0, NULL) != -1);
</span><span class="lines">@@ -6029,20 +6053,33 @@
</span><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">         case VPROC_GSK_IDLE_TIMEOUT:
</span><del>-                if ((unsigned int)inval &gt; 0) {
-                        j-&gt;timeout = inval;
</del><ins>+                if (inval &lt; 0 || inval &gt; UINT32_MAX) {
+                        kr = 1;
+                } else {
+                        j-&gt;timeout = (typeof(j-&gt;timeout)) inval;
</ins><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">         case VPROC_GSK_EXIT_TIMEOUT:
</span><del>-                if ((unsigned int)inval &gt; 0) {
-                        j-&gt;exit_timeout = inval;
</del><ins>+                if (inval &lt; 0 || inval &gt; UINT32_MAX) {
+                        kr = 1;
+                } else {
+                        j-&gt;exit_timeout = (typeof(j-&gt;exit_timeout)) inval;
</ins><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">         case VPROC_GSK_GLOBAL_LOG_MASK:
</span><del>-                runtime_setlogmask(inval);
</del><ins>+                if (inval &lt; 0 || inval &gt; UINT32_MAX) {
+                        kr = 1;
+                } else {
+                        runtime_setlogmask((int) inval);
+                }
</ins><span class="cx">                 break;
</span><span class="cx">         case VPROC_GSK_GLOBAL_UMASK:
</span><del>-                umask(inval);
</del><ins>+                launchd_assert(sizeof (mode_t) == 2);
+                if (inval &lt; 0 || inval &gt; UINT16_MAX) {
+                        kr = 1;
+                } else {
+                        umask((mode_t) inval);
+                }
</ins><span class="cx">                 break;
</span><span class="cx">         case 0:
</span><span class="cx">                 break;
</span><span class="lines">@@ -7073,7 +7110,7 @@
</span><span class="cx">                 }
</span><span class="cx">         } else {
</span><span class="cx">                 target_j-&gt;deny_unknown_mslookups = !(flags &amp; BOOTSTRAP_ALLOW_LOOKUP);
</span><del>-                target_j-&gt;deny_job_creation = (bool)(flags &amp; BOOTSTRAP_DENY_JOB_CREATION);
</del><ins>+                target_j-&gt;deny_job_creation = flags &amp; BOOTSTRAP_DENY_JOB_CREATION;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return 0;
</span><span class="lines">@@ -7307,7 +7344,7 @@
</span><span class="cx">         int r, i, found, returned;
</span><span class="cx"> 
</span><span class="cx">         do {
</span><del>-                returned = getfsstat(buf, sizeof(buf), MNT_NOWAIT);
</del><ins>+                returned = getfsstat(buf, (int) sizeof(buf), MNT_NOWAIT);
</ins><span class="cx">                 found = 0;
</span><span class="cx"> 
</span><span class="cx">                 if (!launchd_assumes(returned != -1)) {
</span></span></pre></div>
<a id="trunklaunchdsrclaunchproxyc"></a>
<div class="modfile"><h4>Modified: trunk/launchd/src/launchproxy.c (23639 => 23640)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/launchd/src/launchproxy.c        2008-05-28 20:33:08 UTC (rev 23639)
+++ trunk/launchd/src/launchproxy.c        2008-06-04 21:57:47 UTC (rev 23640)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> {
</span><span class="cx">         struct timespec timeout = { 10, 0 };
</span><span class="cx">         struct sockaddr_storage ss;
</span><del>-        socklen_t slen = sizeof(ss);
</del><ins>+        socklen_t slen = (socklen_t)sizeof ss;
</ins><span class="cx">         struct kevent kev;
</span><span class="cx">         int r, ec = EXIT_FAILURE;
</span><span class="cx">         launch_data_t tmp, resp, msg = launch_data_alloc(LAUNCH_DATA_STRING);
</span><span class="lines">@@ -143,17 +143,17 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 if (w) {
</span><del>-                        dup2(kev.ident, STDIN_FILENO);
</del><ins>+                        dup2((int)kev.ident, STDIN_FILENO);
</ins><span class="cx">                         if (dupstdout)
</span><del>-                                dup2(kev.ident, STDOUT_FILENO);
</del><ins>+                                dup2((int)kev.ident, STDOUT_FILENO);
</ins><span class="cx">                         if (dupstderr)
</span><del>-                                dup2(kev.ident, STDERR_FILENO);
</del><ins>+                                dup2((int)kev.ident, STDERR_FILENO);
</ins><span class="cx">                         execv(prog, argv + 1);
</span><span class="cx">                         syslog(LOG_ERR, &quot;execv(): %m&quot;);
</span><span class="cx">                         exit(EXIT_FAILURE);
</span><span class="cx">                 }
</span><span class="cx"> 
</span><del>-                if ((r = accept(kev.ident, (struct sockaddr *)&amp;ss, &amp;slen)) == -1) {
</del><ins>+                if ((r = accept((int)kev.ident, (struct sockaddr *)&amp;ss, &amp;slen)) == -1) {
</ins><span class="cx">                         if (errno == EWOULDBLOCK)
</span><span class="cx">                                 continue;
</span><span class="cx">                         syslog(LOG_DEBUG, &quot;accept(): %m&quot;);
</span><span class="lines">@@ -165,8 +165,8 @@
</span><span class="cx">                                 int gni_r;
</span><span class="cx"> 
</span><span class="cx">                                 gni_r = getnameinfo((struct sockaddr *)&amp;ss, slen,
</span><del>-                                                fromhost, sizeof(fromhost),
-                                                fromport, sizeof(fromport),
</del><ins>+                                                fromhost, (socklen_t) sizeof fromhost,
+                                                fromport, (socklen_t) sizeof fromport,
</ins><span class="cx">                                                 NI_NUMERICHOST | NI_NUMERICSERV);
</span><span class="cx"> 
</span><span class="cx">                                 if (gni_r) {
</span></span></pre>
</div>
</div>

</body>
</html>