diff options
author | Alexey Gladkov <legion@altlinux.org> | 2006-10-13 22:58:46 +1000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-10-13 22:58:46 +1000 |
commit | 1a33ea8ff7736fc63f0c7be2c3a8b488e572694d (patch) | |
tree | fd93c352efd0de3cdd1e2758e291b378578c404c | |
parent | [EXPAND] Fixed inverted char class matching (diff) | |
download | dash-1a33ea8ff7736fc63f0c7be2c3a8b488e572694d.tar.gz dash-1a33ea8ff7736fc63f0c7be2c3a8b488e572694d.zip |
[SYSTEM] Check return code for getgroups and fwrite
Check getgroups() and fwrite() return code, required to build with -D_FORTIFY_SOURCE=2.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/bltin/test.c | 3 | ||||
-rw-r--r-- | src/mkinit.c | 9 |
3 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 9970489..a4db7de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-10-13 Alexey Gladkov <legion@altlinux.org> + + * Check return code for getgroups and fwrite. + +2006-10-04 Herbert Xu <herbert@gondor.apana.org.au> + + * Fixed inverted char class matching. + 2006-05-23 Alexey Gladkov <legion@altlinux.org> * Added --with-libedit option to configure. diff --git a/src/bltin/test.c b/src/bltin/test.c index 9b09094..f16c819 100644 --- a/src/bltin/test.c +++ b/src/bltin/test.c @@ -489,7 +489,8 @@ bash_group_member(gid_t gid) ngroups = getgroups(0, NULL); group_array = stalloc(ngroups * sizeof(gid_t)); - getgroups(ngroups, group_array); + if ((getgroups(ngroups, group_array)) != ngroups) + return (0); /* Search through the list looking for GID. */ for (i = 0; i < ngroups; i++) diff --git a/src/mkinit.c b/src/mkinit.c index e803751..9714bee 100644 --- a/src/mkinit.c +++ b/src/mkinit.c @@ -427,9 +427,12 @@ writetext(struct text *text, FILE *fp) struct block *bp; if (text->start != NULL) { - for (bp = text->start ; bp != text->last ; bp = bp->next) - fwrite(bp->text, sizeof (char), BLOCKSIZE, fp); - fwrite(bp->text, sizeof (char), BLOCKSIZE - text->nleft, fp); + for (bp = text->start ; bp != text->last ; bp = bp->next) { + if ((fwrite(bp->text, sizeof (char), BLOCKSIZE, fp)) != BLOCKSIZE) + error("Can't write data\n"); + } + if ((fwrite(bp->text, sizeof (char), BLOCKSIZE - text->nleft, fp)) != (BLOCKSIZE - text->nleft)) + error("Can't write data\n"); } } |