Fix wpa_config_parse_string() to null terminate printf decoded values
printf_decode() fills in a binary buffer and returns the length of the written data. This did not use null termination since initial use cases used the output as a binary value. However, Hotspot 2.0 cred block values are also using this for parsing strings. Those cases could end up without proper null termination depending on what os_malloc() ends up getting as the memory buffer. Fix these and make printf_decode() more convenient by forcing the output buffer to be null terminated. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
		
							parent
							
								
									04e533e249
								
							
						
					
					
						commit
						913c19c6e5
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		|  | @ -400,7 +400,7 @@ size_t printf_decode(u8 *buf, size_t maxlen, const char *str) | |||
| 	int val; | ||||
| 
 | ||||
| 	while (*pos) { | ||||
| 		if (len == maxlen) | ||||
| 		if (len + 1 >= maxlen) | ||||
| 			break; | ||||
| 		switch (*pos) { | ||||
| 		case '\\': | ||||
|  | @ -468,6 +468,8 @@ size_t printf_decode(u8 *buf, size_t maxlen, const char *str) | |||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	if (maxlen > len) | ||||
| 		buf[len] = '\0'; | ||||
| 
 | ||||
| 	return len; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Kyeyoon Park
						Kyeyoon Park