Fix potential exit status wraparound in chgrp(1)
This commit is contained in:
		
							
								
								
									
										11
									
								
								chgrp.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								chgrp.c
									
									
									
									
									
								
							@@ -11,8 +11,8 @@
 | 
			
		||||
#include "util.h"
 | 
			
		||||
 | 
			
		||||
static int gid;
 | 
			
		||||
static int failures = 0;
 | 
			
		||||
static int rflag = 0;
 | 
			
		||||
static int status;
 | 
			
		||||
static int rflag;
 | 
			
		||||
static struct stat st;
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -26,7 +26,7 @@ chgrp(const char *path)
 | 
			
		||||
{
 | 
			
		||||
	if (chown(path, st.st_uid, gid) < 0) {
 | 
			
		||||
		weprintf("chown %s:", path);
 | 
			
		||||
		failures++;
 | 
			
		||||
		status = 1;
 | 
			
		||||
	}
 | 
			
		||||
	if (rflag)
 | 
			
		||||
		recurse(path, chgrp);
 | 
			
		||||
@@ -59,11 +59,10 @@ main(int argc, char *argv[])
 | 
			
		||||
	while (*++argv) {
 | 
			
		||||
		if (stat(*argv, &st) < 0) {
 | 
			
		||||
			weprintf("stat %s:", *argv);
 | 
			
		||||
			failures++;
 | 
			
		||||
			status = 1;
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
		chgrp(*argv);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return failures;
 | 
			
		||||
	return status;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user