Changeset 23640
- Timestamp:
- 06/04/08 14:57:47 (6 months ago)
- Location:
- trunk/launchd/src
- Files:
-
- 6 modified
-
Makefile.am (modified) (1 diff)
-
Makefile.in (modified) (1 diff)
-
launchctl.c (modified) (15 diffs)
-
launchd.c (modified) (1 diff)
-
launchd_core_logic.c (modified) (39 diffs)
-
launchproxy.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/launchd/src/Makefile.am
r23574 r23640 1 CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror # gcc4.2: -Wstrict-overflow=4 # -Wpadded -Wconversion -Wstrict-aliasing=22 CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2:-fdiagnostics-show-option # -fstrict-aliasing3 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D __MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=11 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 2 CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing 3 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 4 4 AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN) 5 5 AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT) -
trunk/launchd/src/Makefile.in
r23574 r23640 243 243 top_builddir = @top_builddir@ 244 244 top_srcdir = @top_srcdir@ 245 CWARN = -Wall -Wextra -Waggregate-return -Wfloat-equal -Wshadow -Wpacked -Wmissing-prototypes -Wmissing-declarations -Werror # gcc4.2: -Wstrict-overflow=4 # -Wpadded -Wconversion -Wstrict-aliasing=2246 CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2:-fdiagnostics-show-option # -fstrict-aliasing247 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D __MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1245 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 246 CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing 247 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 248 248 AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN) 249 249 AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT) -
trunk/launchd/src/launchctl.c
r23564 r23640 97 97 launch_data_t pass2; 98 98 char *session_type; 99 unsigned int editondisk:1, load:1, forceload:1, __pad:29;99 bool editondisk:1, load:1, forceload:1; 100 100 }; 101 101 … … 320 320 char s[1000], *c, *av[100]; 321 321 const char *file; 322 size_t len, i; 322 size_t len; 323 int i; 323 324 FILE *f; 324 325 … … 333 334 } 334 335 335 while ((c = fgets(s, sizeof(s), f))) {336 while ((c = fgets(s, (int) sizeof s, f))) { 336 337 len = strlen(c); 337 338 if (len && c[len - 1] == '\n') { … … 917 918 } 918 919 oldmask = umask(S_IRWXG|S_IRWXO); 919 if (bind(sfd, (struct sockaddr *)&sun, sizeof(sun)) == -1) {920 if (bind(sfd, (struct sockaddr *)&sun, (socklen_t) sizeof sun) == -1) { 920 921 close(sfd); 921 922 umask(oldmask); … … 930 931 return; 931 932 } 932 } else if (connect(sfd, (struct sockaddr *)&sun, sizeof(sun)) == -1) {933 } else if (connect(sfd, (struct sockaddr *)&sun, (socklen_t) sizeof sun) == -1) { 933 934 close(sfd); 934 935 return; … … 1004 1005 if (hints.ai_flags & AI_PASSIVE) { 1005 1006 if (AF_INET6 == res->ai_family && -1 == setsockopt(sfd, IPPROTO_IPV6, IPV6_V6ONLY, 1006 (void *)&sock_opt, sizeof(sock_opt))) {1007 (void *)&sock_opt, (socklen_t) sizeof sock_opt)) { 1007 1008 fprintf(stderr, "setsockopt(IPV6_V6ONLY): %m"); 1008 1009 return; 1009 1010 } 1010 1011 if (mgroup) { 1011 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEPORT, (void *)&sock_opt, sizeof(sock_opt)) == -1) {1012 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEPORT, (void *)&sock_opt, (socklen_t) sizeof sock_opt) == -1) { 1012 1013 fprintf(stderr, "setsockopt(SO_REUSEPORT): %s\n", strerror(errno)); 1013 1014 return; 1014 1015 } 1015 1016 } else { 1016 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, (void *)&sock_opt, sizeof(sock_opt)) == -1) {1017 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, (void *)&sock_opt, (socklen_t) sizeof sock_opt) == -1) { 1017 1018 fprintf(stderr, "setsockopt(SO_REUSEADDR): %s\n", strerror(errno)); 1018 1019 return; … … 1109 1110 memset(&mreq, 0, sizeof(mreq)); 1110 1111 mreq.imr_multiaddr = ((struct sockaddr_in *)res->ai_addr)->sin_addr; 1111 if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) == -1) {1112 if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, (socklen_t) sizeof mreq) == -1) { 1112 1113 fprintf(stderr, "setsockopt(IP_ADD_MEMBERSHIP): %s\n", strerror(errno)); 1113 1114 continue; … … 1117 1118 memset(&m6req, 0, sizeof(m6req)); 1118 1119 m6req.ipv6mr_multiaddr = ((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; 1119 if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &m6req, sizeof(m6req)) == -1) {1120 if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &m6req, (socklen_t) sizeof m6req) == -1) { 1120 1121 fprintf(stderr, "setsockopt(IPV6_JOIN_GROUP): %s\n", strerror(errno)); 1121 1122 continue; … … 1294 1295 { 1295 1296 FILE *where = stdout; 1296 int l, cmdwidth = 0; 1297 size_t i; 1297 size_t i, l, cmdwidth = 0; 1298 1298 1299 1299 if (argc == 0 || argv == NULL) … … 1304 1304 for (i = 0; i < (sizeof cmds / sizeof cmds[0]); i++) { 1305 1305 l = strlen(cmds[i].name); 1306 if (l > cmdwidth) 1306 if (l > cmdwidth) { 1307 1307 cmdwidth = l; 1308 } 1308 1309 } 1309 1310 1310 1311 for (i = 0; i < (sizeof cmds / sizeof cmds[0]); i++) { 1311 fprintf(where, "\t%-*s\t%s\n", cmdwidth, cmds[i].name, cmds[i].desc);1312 fprintf(where, "\t%-*s\t%s\n", (int)cmdwidth, cmds[i].name, cmds[i].desc); 1312 1313 } 1313 1314 … … 2109 2110 { 2110 2111 int64_t inval, outval; 2111 int i, j, m = 0;2112 2112 bool badargs = false, maskmode = false, onlymode = false, levelmode = false; 2113 2113 static const struct { … … 2124 2124 { "emergency", LOG_EMERG }, 2125 2125 }; 2126 int logtblsz = sizeof logtbl / sizeof logtbl[0]; 2126 size_t i, j, logtblsz = sizeof logtbl / sizeof logtbl[0]; 2127 int m = 0; 2127 2128 2128 2129 if (argc >= 2) { … … 2141 2142 2142 2143 if (argc > 2 && (maskmode || onlymode)) { 2143 for (i = 2; i < argc; i++) {2144 for (i = 2; i < (size_t)argc; i++) { 2144 2145 for (j = 0; j < logtblsz; j++) { 2145 2146 if (!strcmp(argv[i], logtbl[j].name)) { … … 2306 2307 if (argc == 2 && (size_t)which != i) 2307 2308 continue; 2308 fprintf(stdout, "\t%-12s%-15s%-15s\n", num2name( i),2309 fprintf(stdout, "\t%-12s%-15s%-15s\n", num2name((int)i), 2309 2310 lim2str(lmts[i].rlim_cur, slimstr), 2310 2311 lim2str(lmts[i].rlim_max, hlimstr)); … … 3115 3116 if (assumes(prog != NULL)) { 3116 3117 /* The networking team has asked us to ignore the failure of this API if errno == ENOPROTOOPT */ 3117 assumes(setsockopt(sfd, SOL_SOCKET, SO_EXECPATH, prog, strlen(prog) + 1) != -1 || errno == ENOPROTOOPT);3118 assumes(setsockopt(sfd, SOL_SOCKET, SO_EXECPATH, prog, (socklen_t)(strlen(prog) + 1)) != -1 || errno == ENOPROTOOPT); 3118 3119 } 3119 3120 } -
trunk/launchd/src/launchd.c
r23580 r23640 399 399 char buf[1024]; 400 400 401 launchd_assumes(read( kev->ident, &buf, sizeof(buf)) != -1);401 launchd_assumes(read((int)kev->ident, &buf, sizeof(buf)) != -1); 402 402 403 403 new_networking_state = get_network_state(); -
trunk/launchd/src/launchd_core_logic.c
r23637 r23640 189 189 }; 190 190 191 static bool socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds);191 static bool socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds); 192 192 static void socketgroup_delete(job_t j, struct socketgroup *sg); 193 193 static void socketgroup_watch(job_t j, struct socketgroup *sg); … … 358 358 uid_t mach_uid; 359 359 jobmgr_t mgr; 360 size_t argc; 360 361 char **argv; 361 362 char *prog; … … 380 381 #endif 381 382 pid_t p; 382 int argc;383 383 int last_exit_status; 384 384 int stdin_fd; … … 386 386 int log_redirect_fd; 387 387 int nice; 388 unsigned int timeout;389 unsigned int exit_timeout;390 388 int stdout_err_fd; 389 uint32_t timeout; 390 uint32_t exit_timeout; 391 391 uint64_t sent_signal_time; 392 392 uint64_t start_time; … … 712 712 } 713 713 if (likely(j->argv) && (tmp = launch_data_alloc(LAUNCH_DATA_ARRAY))) { 714 int i;714 size_t i; 715 715 716 716 for (i = 0; i < j->argc; i++) { … … 1070 1070 launch_data_t tmp_oai; 1071 1071 job_t j = context; 1072 unsigned int i, fd_cnt = 1;1072 size_t i, fd_cnt = 1; 1073 1073 int *fds; 1074 1074 … … 1126 1126 1127 1127 /* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */ 1128 mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);1128 mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem); 1129 1129 if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { 1130 1130 mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize; … … 1327 1327 char *co; 1328 1328 size_t minlabel_len; 1329 int i, cc = 0;1329 size_t i, cc = 0; 1330 1330 job_t j; 1331 1331 … … 1707 1707 job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_EXITTIMEOUT); 1708 1708 } else { 1709 j->exit_timeout = value;1709 j->exit_timeout = (typeof(j->exit_timeout)) value; 1710 1710 } 1711 1711 } … … 1714 1714 case 'N': 1715 1715 if (strcasecmp(key, LAUNCH_JOBKEY_NICE) == 0) { 1716 j->nice = value; 1717 j->setnice = true; 1716 if (unlikely(value < PRIO_MIN)) { 1717 job_log(j, LOG_WARNING, "%s less than %d. Ignoring.", LAUNCH_JOBKEY_NICE, PRIO_MIN); 1718 } else if (unlikely(value > PRIO_MAX)) { 1719 job_log(j, LOG_WARNING, "%s is greater than %d. Ignoring.", LAUNCH_JOBKEY_NICE, PRIO_MAX); 1720 } else { 1721 j->nice = (typeof(j->nice)) value; 1722 j->setnice = true; 1723 } 1718 1724 } 1719 1725 break; … … 1726 1732 job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_TIMEOUT); 1727 1733 } else { 1728 j->timeout = value;1734 j->timeout = (typeof(j->timeout)) value; 1729 1735 } 1730 1736 } else if (strcasecmp(key, LAUNCH_JOBKEY_THROTTLEINTERVAL) == 0) { … … 1734 1740 job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_THROTTLEINTERVAL); 1735 1741 } else { 1736 j->min_run_time = value;1742 j->min_run_time = (typeof(j->min_run_time)) value; 1737 1743 } 1738 1744 } … … 1754 1760 } else { 1755 1761 runtime_add_weak_ref(); 1756 j->start_interval = value;1757 1758 job_assumes(j, kevent_mod((uintptr_t)&j->start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, value, j) != -1);1762 j->start_interval = (typeof(j->start_interval)) value; 1763 1764 job_assumes(j, kevent_mod((uintptr_t)&j->start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, j->start_interval, j) != -1); 1759 1765 } 1760 1766 #if HAVE_SANDBOX … … 1949 1955 j->j_binpref_cnt = value_cnt; 1950 1956 for (i = 0; i < value_cnt; i++) { 1951 j->j_binpref[i] = launch_data_get_integer(launch_data_array_get_index(value, i));1957 j->j_binpref[i] = (cpu_type_t) launch_data_get_integer(launch_data_array_get_index(value, i)); 1952 1958 } 1953 1959 } … … 2322 2328 2323 2329 if (unlikely(j->weird_bootstrap)) { 2324 mach_msg_size_t mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);2330 mach_msg_size_t mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem); 2325 2331 2326 2332 if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { … … 2600 2606 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL }; 2601 2607 #endif 2602 int mib_sz = sizeof(mib) / sizeof(mib[0]);2608 size_t mib_sz = sizeof(mib) / sizeof(mib[0]); 2603 2609 size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 2604 2610 struct kinfo_proc *kp; … … 2611 2617 return; 2612 2618 } 2613 if (!job_assumes(j, sysctl(mib, mib_sz, kp, &len, NULL, 0) != -1)) {2619 if (!job_assumes(j, sysctl(mib, (u_int) mib_sz, kp, &len, NULL, 0) != -1)) { 2614 2620 goto out; 2615 2621 } … … 2761 2767 } 2762 2768 2763 if ((j = jobmgr_find_by_pid(jm, kev->ident, false))) {2769 if ((j = jobmgr_find_by_pid(jm, (pid_t) kev->ident, false))) { 2764 2770 kev->udata = j; 2765 2771 job_callback(j, kev); … … 2836 2842 return job_callback_proc(j, kev->fflags); 2837 2843 case EVFILT_TIMER: 2838 return job_callback_timer(j, (void *) kev->ident);2844 return job_callback_timer(j, (void *) kev->ident); 2839 2845 case EVFILT_VNODE: 2840 2846 return semaphoreitem_callback(j, kev); 2841 2847 case EVFILT_READ: 2842 return job_callback_read(j, kev->ident);2848 return job_callback_read(j, (int) kev->ident); 2843 2849 case EVFILT_MACHPORT: 2844 2850 return (void)job_dispatch(j, true); … … 3015 3021 short spflags = POSIX_SPAWN_SETEXEC; 3016 3022 size_t binpref_out_cnt = 0; 3017 int i;3023 size_t i; 3018 3024 3019 3025 if (JOB_BOOTCACHE_HACK_CHECK(j)) { … … 3886 3892 } 3887 3893 3894 struct cal_dict_walk { 3895 job_t j; 3896 struct tm tmptm; 3897 }; 3898 3888 3899 void 3889 3900 calendarinterval_new_from_obj_dict_walk(launch_data_t obj, const char *key, void *context) 3890 3901 { 3891 struct tm *tmptm = context; 3902 struct cal_dict_walk *cdw = context; 3903 struct tm *tmptm = &cdw->tmptm; 3904 job_t j = cdw->j; 3892 3905 int64_t val; 3893 3906 … … 3900 3913 val = launch_data_get_integer(obj); 3901 3914 3902 if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MINUTE) == 0) { 3903 tmptm->tm_min = val; 3915 if (val < 0) { 3916 job_log(j, LOG_WARNING, "The interval for key \"%s\" is less than zero.", key); 3917 } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MINUTE) == 0) { 3918 tmptm->tm_min = (typeof(tmptm->tm_min)) val; 3904 3919 } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_HOUR) == 0) { 3905 tmptm->tm_hour = val;3920 tmptm->tm_hour = (typeof(tmptm->tm_hour)) val; 3906 3921 } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_DAY) == 0) { 3907 tmptm->tm_mday = val;3922 tmptm->tm_mday = (typeof(tmptm->tm_mday)) val; 3908 3923 } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_WEEKDAY) == 0) { 3909 tmptm->tm_wday = val;3924 tmptm->tm_wday = (typeof(tmptm->tm_wday)) val; 3910 3925 } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MONTH) == 0) { 3911 tmptm->tm_mon = val;3926 tmptm->tm_mon = (typeof(tmptm->tm_mon)) val; 3912 3927 tmptm->tm_mon -= 1; /* 4798263 cron compatibility */ 3913 3928 } … … 3917 3932 calendarinterval_new_from_obj(job_t j, launch_data_t obj) 3918 3933 { 3919 struct tm tmptm; 3920 3921 memset(&tmptm, 0, sizeof(0)); 3922 3923 tmptm.tm_min = -1; 3924 tmptm.tm_hour = -1; 3925 tmptm.tm_mday = -1; 3926 tmptm.tm_wday = -1; 3927 tmptm.tm_mon = -1; 3934 struct cal_dict_walk cdw; 3935 3936 cdw.j = j; 3937 memset(&cdw.tmptm, 0, sizeof(0)); 3938 3939 cdw.tmptm.tm_min = -1; 3940 cdw.tmptm.tm_hour = -1; 3941 cdw.tmptm.tm_mday = -1; 3942 cdw.tmptm.tm_wday = -1; 3943 cdw.tmptm.tm_mon = -1; 3928 3944 3929 3945 if (!job_assumes(j, obj != NULL)) { … … 3935 3951 } 3936 3952 3937 launch_data_dict_iterate(obj, calendarinterval_new_from_obj_dict_walk, & tmptm);3938 3939 if (unlikely( tmptm.tm_sec == -1)) {3953 launch_data_dict_iterate(obj, calendarinterval_new_from_obj_dict_walk, &cdw); 3954 3955 if (unlikely(cdw.tmptm.tm_sec == -1)) { 3940 3956 return false; 3941 3957 } 3942 3958 3943 return calendarinterval_new(j, & tmptm);3959 return calendarinterval_new(j, &cdw.tmptm); 3944 3960 } 3945 3961 … … 4009 4025 4010 4026 bool 4011 socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds)4027 socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds) 4012 4028 { 4013 4029 struct socketgroup *sg = calloc(1, sizeof(struct socketgroup) + strlen(name) + 1); … … 4087 4103 for (i = 0; i < sg->fd_cnt; i++) { 4088 4104 job_assumes(j, kev[i].flags & EV_ERROR); 4089 errno = kev[i].data;4105 errno = (typeof(errno)) kev[i].data; 4090 4106 job_assumes(j, kev[i].data == 0); 4091 4107 } … … 4231 4247 { 4232 4248 job_t j = context; 4233 int i, limits_cnt = (sizeof(launchd_keys2limits) / sizeof(launchd_keys2limits[0]));4249 size_t i, limits_cnt = (sizeof(launchd_keys2limits) / sizeof(launchd_keys2limits[0])); 4234 4250 rlim_t rl; 4235 4251 … … 4582 4598 switch (launch_data_get_type(obj)) { 4583 4599 case LAUNCH_DATA_INTEGER: 4584 which_port = launch_data_get_integer(obj);4600 which_port = (int)launch_data_get_integer(obj); /* XXX we should bound check this... */ 4585 4601 if (strcasecmp(key, LAUNCH_JOBKEY_MACH_TASKSPECIALPORT) == 0) { 4586 4602 switch (which_port) { … … 4589 4605 case TASK_NAME_PORT: 4590 4606 case TASK_BOOTSTRAP_PORT: 4591 /* I find it a little odd that zero isn't reserved in the header */ 4607 /* I find it a little odd that zero isn't reserved in the header. 4608 * Normally Mach is fairly good about this convention... */ 4592 4609 case 0: 4593 4610 job_log(ms->job, LOG_WARNING, "Tried to set a reserved task special port: %d", which_port); … … 4886 4903 4887 4904 if (trusted_fd) { 4888 int dfd, lfd = strtol(trusted_fd, NULL, 10);4905 int dfd, lfd = (int) strtol(trusted_fd, NULL, 10); 4889 4906 4890 4907 if ((dfd = dup(lfd)) >= 0) { … … 4912 4929 4913 4930 /* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */ 4914 mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);4931 mxmsgsz = (typeof(mxmsgsz)) sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem); 4915 4932 if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { 4916 4933 mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize; … … 5246 5263 char *sample_args[] = { "sample", pidstr, "1", "-unsupportedShowArch", "-mayDie", "-file", logfile, NULL }; 5247 5264 char *contents = NULL; 5265 size_t contents_sz; 5248 5266 int logfile_fd = -1; 5249 5267 int console_fd = -1; … … 5309 5327 } 5310 5328 5311 contents = malloc(sb.st_size); 5329 if (sizeof (size_t) == 4 && !job_assumes(j, !(sb.st_size & 0xffffffff00000000llu))) { 5330 goto out; 5331 } 5332 5333 contents_sz = (size_t) sb.st_size; 5334 5335 contents = malloc(contents_sz); 5312 5336 5313 5337 if (!job_assumes(j, contents != NULL)) { … … 5315 5339 } 5316 5340 5317 if (!job_assumes(j, read(logfile_fd, contents, sb.st_size) == sb.st_size)) {5341 if (!job_assumes(j, read(logfile_fd, contents, contents_sz) == (ssize_t) contents_sz)) { 5318 5342 goto out; 5319 5343 } 5320 5344 5321 job_assumes(j, write(console_fd, contents, sb.st_size) == sb.st_size);5345 job_assumes(j, write(console_fd, contents, contents_sz) == (ssize_t) contents_sz); 5322 5346 5323 5347 out:

