diff --git a/ChangeLog b/ChangeLog index 8ebb4e07d1..bd609b4e80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jul 13 21:28:35 2010 Nobuyoshi Nakada + + * process.c (rb_fork_err): suppress gcc 4.4 warnings. + + * random.c (fill_random_seed): ditto. + Tue Jul 13 21:01:44 2010 Nobuyoshi Nakada * ext/pty/pty.c (establishShell): chfunc must not raise any diff --git a/process.c b/process.c index 9e52392320..8e601ba850 100644 --- a/process.c +++ b/process.c @@ -2513,10 +2513,12 @@ rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALU if (!(*chfunc)(charg, errmsg, errmsg_buflen)) _exit(EXIT_SUCCESS); #ifdef FD_CLOEXEC err = errno; - (void)write(ep[1], &err, sizeof(err)); + if (write(ep[1], &err, sizeof(err)) < 0) err = errno; if (errmsg && 0 < errmsg_buflen) { errmsg[errmsg_buflen-1] = '\0'; - (void)write(ep[1], errmsg, strlen(errmsg)); + errmsg_buflen = strlen(errmsg); + if (errmsg_buflen > 0 &&write(ep[1], errmsg, errmsg_buflen) < 0) + err = errno; } #endif #if EXIT_SUCCESS == 127 diff --git a/random.c b/random.c index 2da40b2bb6..333c593ff5 100644 --- a/random.c +++ b/random.c @@ -489,7 +489,9 @@ fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT]) #endif )) >= 0) { if (fstat(fd, &statbuf) == 0 && S_ISCHR(statbuf.st_mode)) { - (void)read(fd, seed, DEFAULT_SEED_LEN); + if (read(fd, seed, DEFAULT_SEED_LEN) < DEFAULT_SEED_LEN) { + /* abandon */; + } } close(fd); }