get_pid.c: Use tighter validation checks
Neither a pid_t below 1 nor a negative fd could be valid in this context. Proof of Concept: $ newuidmap -1 1 1 1 newuidmap: Could not open proc directory for target 4294967295 Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
This commit is contained in:
		
				
					committed by
					
						 Iker Pedrosa
						Iker Pedrosa
					
				
			
			
				
	
			
			
			
						parent
						
							a022d39d2a
						
					
				
				
					commit
					4ef4477535
				
			| @@ -24,6 +24,7 @@ int get_pid (const char *pidstr, pid_t *pid) | ||||
| 	if (   ('\0' == *pidstr) | ||||
| 	    || ('\0' != *endptr) | ||||
| 	    || (ERANGE == errno) | ||||
| 	    || (val < 1) | ||||
| 	    || (/*@+longintegral@*/val != (pid_t)val)/*@=longintegral@*/) { | ||||
| 		return 0; | ||||
| 	} | ||||
| @@ -49,7 +50,8 @@ int get_pidfd_from_fd(const char *pidfdstr) | ||||
| 	if (   ('\0' == *pidfdstr) | ||||
| 	    || ('\0' != *endptr) | ||||
| 	    || (ERANGE == errno) | ||||
| 	    || (/*@+longintegral@*/val != (pid_t)val)/*@=longintegral@*/) { | ||||
| 	    || (val < 0) | ||||
| 	    || (/*@+longintegral@*/val != (int)val)/*@=longintegral@*/) { | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user