Projects
Browse Source     Search     Timeline     Wiki

Changeset 23640

Show
Ignore:
Timestamp:
2008-06-04 14:57:47 (4 months ago)
Author:
zarzycki@…
Message:

Preparing to crank up the warning level...

Location:
trunk/launchd/src
Files:
6 modified

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=2 
    2 CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2: -fdiagnostics-show-option # -fstrict-aliasing 
    3 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D__MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 
     1CWARN = -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 
     2CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing 
     3CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 
    44AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN) 
    55AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT) 
  • trunk/launchd/src/Makefile.in

    r23574 r23640  
    243243top_builddir = @top_builddir@ 
    244244top_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=2 
    246 CTUNE = -fvisibility=hidden -freorder-blocks # gcc4.2: -fdiagnostics-show-option # -fstrict-aliasing 
    247 CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -D__MigTypeCheck=1 -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 
     245CWARN = -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 
     246CTUNE = -fvisibility=hidden -freorder-blocks -fdiagnostics-show-option # -fstrict-aliasing 
     247CMISC = -isysroot $(SDKROOT) -F$(SDKROOT)/System/Library/PrivateFrameworks -Dmig_external=__private_extern__ -D_DARWIN_USE_64_BIT_INODE=1 
    248248AM_CFLAGS = $(CTUNE) $(CMISC) $(CWARN) 
    249249AM_LDFLAGS = -Wl,-syslibroot,$(SDKROOT) 
  • trunk/launchd/src/launchctl.c

    r23564 r23640  
    9797        launch_data_t pass2; 
    9898        char *session_type; 
    99         unsigned int editondisk:1, load:1, forceload:1, __pad:29; 
     99        bool editondisk:1, load:1, forceload:1; 
    100100}; 
    101101 
     
    320320        char s[1000], *c, *av[100]; 
    321321        const char *file; 
    322         size_t len, i; 
     322        size_t len; 
     323        int i; 
    323324        FILE *f; 
    324325 
     
    333334        } 
    334335 
    335         while ((c = fgets(s, sizeof(s), f))) { 
     336        while ((c = fgets(s, (int) sizeof s, f))) { 
    336337                len = strlen(c); 
    337338                if (len && c[len - 1] == '\n') { 
     
    917918                        } 
    918919                        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) { 
    920921                                close(sfd); 
    921922                                umask(oldmask); 
     
    930931                                return; 
    931932                        } 
    932                 } else if (connect(sfd, (struct sockaddr *)&sun, sizeof(sun)) == -1) { 
     933                } else if (connect(sfd, (struct sockaddr *)&sun, (socklen_t) sizeof sun) == -1) { 
    933934                        close(sfd); 
    934935                        return; 
     
    10041005                        if (hints.ai_flags & AI_PASSIVE) { 
    10051006                                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)) { 
    10071008                                        fprintf(stderr, "setsockopt(IPV6_V6ONLY): %m"); 
    10081009                                        return; 
    10091010                                } 
    10101011                                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) { 
    10121013                                                fprintf(stderr, "setsockopt(SO_REUSEPORT): %s\n", strerror(errno)); 
    10131014                                                return; 
    10141015                                        } 
    10151016                                } 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) { 
    10171018                                                fprintf(stderr, "setsockopt(SO_REUSEADDR): %s\n", strerror(errno)); 
    10181019                                                return; 
     
    11091110                        memset(&mreq, 0, sizeof(mreq)); 
    11101111                        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) { 
    11121113                                fprintf(stderr, "setsockopt(IP_ADD_MEMBERSHIP): %s\n", strerror(errno)); 
    11131114                                continue; 
     
    11171118                        memset(&m6req, 0, sizeof(m6req)); 
    11181119                        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) { 
    11201121                                fprintf(stderr, "setsockopt(IPV6_JOIN_GROUP): %s\n", strerror(errno)); 
    11211122                                continue; 
     
    12941295{ 
    12951296        FILE *where = stdout; 
    1296         int l, cmdwidth = 0; 
    1297         size_t i; 
     1297        size_t i, l, cmdwidth = 0; 
    12981298         
    12991299        if (argc == 0 || argv == NULL) 
     
    13041304        for (i = 0; i < (sizeof cmds / sizeof cmds[0]); i++) { 
    13051305                l = strlen(cmds[i].name); 
    1306                 if (l > cmdwidth) 
     1306                if (l > cmdwidth) { 
    13071307                        cmdwidth = l; 
     1308                } 
    13081309        } 
    13091310 
    13101311        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); 
    13121313        } 
    13131314 
     
    21092110{ 
    21102111        int64_t inval, outval; 
    2111         int i, j, m = 0; 
    21122112        bool badargs = false, maskmode = false, onlymode = false, levelmode = false; 
    21132113        static const struct { 
     
    21242124                { "emergency",  LOG_EMERG }, 
    21252125        }; 
    2126         int logtblsz = sizeof logtbl / sizeof logtbl[0]; 
     2126        size_t i, j, logtblsz = sizeof logtbl / sizeof logtbl[0]; 
     2127        int m = 0; 
    21272128 
    21282129        if (argc >= 2) { 
     
    21412142 
    21422143        if (argc > 2 && (maskmode || onlymode)) { 
    2143                 for (i = 2; i < argc; i++) { 
     2144                for (i = 2; i < (size_t)argc; i++) { 
    21442145                        for (j = 0; j < logtblsz; j++) { 
    21452146                                if (!strcmp(argv[i], logtbl[j].name)) { 
     
    23062307                                if (argc == 2 && (size_t)which != i) 
    23072308                                        continue; 
    2308                                 fprintf(stdout, "\t%-12s%-15s%-15s\n", num2name(i), 
     2309                                fprintf(stdout, "\t%-12s%-15s%-15s\n", num2name((int)i), 
    23092310                                                lim2str(lmts[i].rlim_cur, slimstr), 
    23102311                                                lim2str(lmts[i].rlim_max, hlimstr)); 
     
    31153116        if (assumes(prog != NULL)) { 
    31163117                /* 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); 
    31183119        } 
    31193120} 
  • trunk/launchd/src/launchd.c

    r23580 r23640  
    399399        char buf[1024]; 
    400400 
    401         launchd_assumes(read(kev->ident, &buf, sizeof(buf)) != -1); 
     401        launchd_assumes(read((int)kev->ident, &buf, sizeof(buf)) != -1); 
    402402 
    403403        new_networking_state = get_network_state(); 
  • trunk/launchd/src/launchd_core_logic.c

    r23637 r23640  
    189189}; 
    190190 
    191 static bool socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds); 
     191static bool socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds); 
    192192static void socketgroup_delete(job_t j, struct socketgroup *sg); 
    193193static void socketgroup_watch(job_t j, struct socketgroup *sg); 
     
    358358        uid_t mach_uid; 
    359359        jobmgr_t mgr; 
     360        size_t argc; 
    360361        char **argv; 
    361362        char *prog; 
     
    380381#endif 
    381382        pid_t p; 
    382         int argc; 
    383383        int last_exit_status; 
    384384        int stdin_fd; 
     
    386386        int log_redirect_fd; 
    387387        int nice; 
    388         unsigned int timeout; 
    389         unsigned int exit_timeout; 
    390388        int stdout_err_fd; 
     389        uint32_t timeout; 
     390        uint32_t exit_timeout; 
    391391        uint64_t sent_signal_time; 
    392392        uint64_t start_time; 
     
    712712        } 
    713713        if (likely(j->argv) && (tmp = launch_data_alloc(LAUNCH_DATA_ARRAY))) { 
    714                 int i; 
     714                size_t i; 
    715715 
    716716                for (i = 0; i < j->argc; i++) { 
     
    10701070        launch_data_t tmp_oai; 
    10711071        job_t j = context; 
    1072         unsigned int i, fd_cnt = 1; 
     1072        size_t i, fd_cnt = 1; 
    10731073        int *fds; 
    10741074 
     
    11261126 
    11271127        /* 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); 
    11291129        if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { 
    11301130                mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize; 
     
    13271327        char *co; 
    13281328        size_t minlabel_len; 
    1329         int i, cc = 0; 
     1329        size_t i, cc = 0; 
    13301330        job_t j; 
    13311331 
     
    17071707                                job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_EXITTIMEOUT); 
    17081708                        } else { 
    1709                                 j->exit_timeout = value; 
     1709                                j->exit_timeout = (typeof(j->exit_timeout)) value; 
    17101710                        } 
    17111711                } 
     
    17141714        case 'N': 
    17151715                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                        } 
    17181724                } 
    17191725                break; 
     
    17261732                                job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_TIMEOUT); 
    17271733                        } else { 
    1728                                 j->timeout = value; 
     1734                                j->timeout = (typeof(j->timeout)) value; 
    17291735                        } 
    17301736                } else if (strcasecmp(key, LAUNCH_JOBKEY_THROTTLEINTERVAL) == 0) { 
     
    17341740                                job_log(j, LOG_WARNING, "%s is too large. Ignoring.", LAUNCH_JOBKEY_THROTTLEINTERVAL); 
    17351741                        } else { 
    1736                                 j->min_run_time = value; 
     1742                                j->min_run_time = (typeof(j->min_run_time)) value; 
    17371743                        } 
    17381744                } 
     
    17541760                        } else { 
    17551761                                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); 
    17591765                        } 
    17601766#if HAVE_SANDBOX 
     
    19491955                                j->j_binpref_cnt = value_cnt; 
    19501956                                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)); 
    19521958                                } 
    19531959                        } 
     
    23222328 
    23232329        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); 
    23252331 
    23262332                if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { 
     
    26002606        int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL }; 
    26012607#endif 
    2602         int mib_sz = sizeof(mib) / sizeof(mib[0]); 
     2608        size_t mib_sz = sizeof(mib) / sizeof(mib[0]); 
    26032609        size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 
    26042610        struct kinfo_proc *kp; 
     
    26112617                return; 
    26122618        } 
    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)) { 
    26142620                goto out; 
    26152621        } 
     
    27612767        } 
    27622768 
    2763         if ((j = jobmgr_find_by_pid(jm, kev->ident, false))) { 
     2769        if ((j = jobmgr_find_by_pid(jm, (pid_t) kev->ident, false))) { 
    27642770                kev->udata = j; 
    27652771                job_callback(j, kev); 
     
    28362842                return job_callback_proc(j, kev->fflags); 
    28372843        case EVFILT_TIMER: 
    2838                 return job_callback_timer(j, (void *)kev->ident); 
     2844                return job_callback_timer(j, (void *) kev->ident); 
    28392845        case EVFILT_VNODE: 
    28402846                return semaphoreitem_callback(j, kev); 
    28412847        case EVFILT_READ: 
    2842                 return job_callback_read(j, kev->ident); 
     2848                return job_callback_read(j, (int) kev->ident); 
    28432849        case EVFILT_MACHPORT: 
    28442850                return (void)job_dispatch(j, true); 
     
    30153021        short spflags = POSIX_SPAWN_SETEXEC; 
    30163022        size_t binpref_out_cnt = 0; 
    3017         int i; 
     3023        size_t i; 
    30183024 
    30193025        if (JOB_BOOTCACHE_HACK_CHECK(j)) { 
     
    38863892} 
    38873893 
     3894struct cal_dict_walk { 
     3895        job_t j; 
     3896        struct tm tmptm; 
     3897}; 
     3898 
    38883899void 
    38893900calendarinterval_new_from_obj_dict_walk(launch_data_t obj, const char *key, void *context) 
    38903901{ 
    3891         struct tm *tmptm = context; 
     3902        struct cal_dict_walk *cdw = context; 
     3903        struct tm *tmptm = &cdw->tmptm; 
     3904        job_t j = cdw->j; 
    38923905        int64_t val; 
    38933906 
     
    39003913        val = launch_data_get_integer(obj); 
    39013914 
    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; 
    39043919        } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_HOUR) == 0) { 
    3905                 tmptm->tm_hour = val; 
     3920                tmptm->tm_hour = (typeof(tmptm->tm_hour)) val; 
    39063921        } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_DAY) == 0) { 
    3907                 tmptm->tm_mday = val; 
     3922                tmptm->tm_mday = (typeof(tmptm->tm_mday)) val; 
    39083923        } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_WEEKDAY) == 0) { 
    3909                 tmptm->tm_wday = val; 
     3924                tmptm->tm_wday = (typeof(tmptm->tm_wday)) val; 
    39103925        } else if (strcasecmp(key, LAUNCH_JOBKEY_CAL_MONTH) == 0) { 
    3911                 tmptm->tm_mon = val; 
     3926                tmptm->tm_mon = (typeof(tmptm->tm_mon)) val; 
    39123927                tmptm->tm_mon -= 1; /* 4798263 cron compatibility */ 
    39133928        } 
     
    39173932calendarinterval_new_from_obj(job_t j, launch_data_t obj) 
    39183933{ 
    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; 
    39283944 
    39293945        if (!job_assumes(j, obj != NULL)) { 
     
    39353951        } 
    39363952 
    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)) { 
    39403956                return false; 
    39413957        } 
    39423958 
    3943         return calendarinterval_new(j, &tmptm); 
     3959        return calendarinterval_new(j, &cdw.tmptm); 
    39443960} 
    39453961 
     
    40094025 
    40104026bool 
    4011 socketgroup_new(job_t j, const char *name, int *fds, unsigned int fd_cnt, bool junkfds) 
     4027socketgroup_new(job_t j, const char *name, int *fds, size_t fd_cnt, bool junkfds) 
    40124028{ 
    40134029        struct socketgroup *sg = calloc(1, sizeof(struct socketgroup) + strlen(name) + 1); 
     
    40874103        for (i = 0; i < sg->fd_cnt; i++) { 
    40884104                job_assumes(j, kev[i].flags & EV_ERROR); 
    4089                 errno = kev[i].data; 
     4105                errno = (typeof(errno)) kev[i].data; 
    40904106                job_assumes(j, kev[i].data == 0); 
    40914107        } 
     
    42314247{ 
    42324248        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])); 
    42344250        rlim_t rl; 
    42354251 
     
    45824598        switch (launch_data_get_type(obj)) { 
    45834599        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... */ 
    45854601                if (strcasecmp(key, LAUNCH_JOBKEY_MACH_TASKSPECIALPORT) == 0) { 
    45864602                        switch (which_port) { 
     
    45894605                        case TASK_NAME_PORT: 
    45904606                        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... */ 
    45924609                        case 0: 
    45934610                                job_log(ms->job, LOG_WARNING, "Tried to set a reserved task special port: %d", which_port); 
     
    48864903 
    48874904                if (trusted_fd) { 
    4888                         int dfd, lfd = strtol(trusted_fd, NULL, 10); 
     4905                        int dfd, lfd = (int) strtol(trusted_fd, NULL, 10); 
    48894906 
    48904907                        if ((dfd = dup(lfd)) >= 0) { 
     
    49124929 
    49134930        /* 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); 
    49154932        if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) { 
    49164933                mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize; 
     
    52465263        char *sample_args[] = { "sample", pidstr, "1", "-unsupportedShowArch", "-mayDie", "-file", logfile, NULL }; 
    52475264        char *contents = NULL; 
     5265        size_t contents_sz; 
    52485266        int logfile_fd = -1; 
    52495267        int console_fd = -1; 
     
    53095327        } 
    53105328 
    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); 
    53125336 
    53135337        if (!job_assumes(j, contents != NULL)) { 
     
    53155339        } 
    53165340 
    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)) { 
    53185342                goto out; 
    53195343        } 
    53205344 
    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); 
    53225346 
    53235347out: