summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexey Gladkov <legion@altlinux.org>2006-10-13 22:58:46 +1000
committerHerbert Xu <herbert@gondor.apana.org.au>2006-10-13 22:58:46 +1000
commit1a33ea8ff7736fc63f0c7be2c3a8b488e572694d (patch)
treefd93c352efd0de3cdd1e2758e291b378578c404c /src
parent[EXPAND] Fixed inverted char class matching (diff)
downloaddash-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.
Diffstat (limited to 'src')
-rw-r--r--src/bltin/test.c3
-rw-r--r--src/mkinit.c9
2 files changed, 8 insertions, 4 deletions
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");
 	}
 }