mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	check for embedded \0 in strings for z and s formats
This commit is contained in:
		
							parent
							
								
									6d946f98bd
								
							
						
					
					
						commit
						96caaee836
					
				
					 1 changed files with 13 additions and 2 deletions
				
			
		|  | @ -206,6 +206,10 @@ do_arg(arg, p_format, p_va) | ||||||
| 			*q = getstringsize(arg); | 			*q = getstringsize(arg); | ||||||
| 			format++; | 			format++; | ||||||
| 		} | 		} | ||||||
|  | 		else if (strlen(*p) != getstringsize(arg)) { | ||||||
|  | 			err_setstr(ValueError, "embedded '\\0' in string arg"); | ||||||
|  | 			return 0; | ||||||
|  | 		} | ||||||
| 		break; | 		break; | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
|  | @ -225,6 +229,10 @@ do_arg(arg, p_format, p_va) | ||||||
| 				*q = getstringsize(arg); | 				*q = getstringsize(arg); | ||||||
| 			format++; | 			format++; | ||||||
| 		} | 		} | ||||||
|  | 		else if (*p != NULL && strlen(*p) != getstringsize(arg)) { | ||||||
|  | 			err_setstr(ValueError, "embedded '\\0' in string arg"); | ||||||
|  | 			return 0; | ||||||
|  | 		} | ||||||
| 		break; | 		break; | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
|  | @ -292,9 +300,12 @@ int getargs(va_alist) va_dcl | ||||||
| 	va_end(va); | 	va_end(va); | ||||||
| 	if (!ok) { | 	if (!ok) { | ||||||
| 		char buf[256]; | 		char buf[256]; | ||||||
| 		sprintf(buf, "bad argument list (format '%s')", format); | 		if (!err_occurred()) { | ||||||
|  | 			sprintf(buf, "bad argument list (format '%s')", | ||||||
|  | 				format); | ||||||
| 			err_setstr(TypeError, buf); | 			err_setstr(TypeError, buf); | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
| 	return ok; | 	return ok; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum