 cc0a54e332
			
		
	
	cc0a54e332
	
	
	
		
			
			This backports some security relevant patches from libubox master. These patches should not change the existing API and ABI so that old applications still work like before without any recompilation. Application can now also use more secure APIs. The new more secure interfaces are also available, but not used. OpenWrt master and 19.07 already have these patches by using a more recent libubox version. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
		
			
				
	
	
		
			39 lines
		
	
	
		
			1006 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1006 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 935bb933e4a74de7326a4373340fd50655712334 Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
 | |
| Date: Tue, 14 Jan 2020 08:57:05 +0100
 | |
| Subject: blobmsg: blobmsg_vprintf: prefer vsnprintf
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| Better safe than sorry and while at it add handling of possible
 | |
| *printf() failures.
 | |
| 
 | |
| Reviewed-by: Jo-Philipp Wich <jo@mein.io>
 | |
| Signed-off-by: Petr Štetiar <ynezz@true.cz>
 | |
| ---
 | |
|  blobmsg.c | 9 ++++++++-
 | |
|  1 file changed, 8 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- a/blobmsg.c
 | |
| +++ b/blobmsg.c
 | |
| @@ -296,10 +296,17 @@ blobmsg_vprintf(struct blob_buf *buf, co
 | |
|  	len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2);
 | |
|  	va_end(arg2);
 | |
|  
 | |
| +	if (len < 0)
 | |
| +		return -1;
 | |
| +
 | |
|  	sbuf = blobmsg_alloc_string_buffer(buf, name, len + 1);
 | |
|  	if (!sbuf)
 | |
|  		return -1;
 | |
| -	ret = vsprintf(sbuf, format, arg);
 | |
| +
 | |
| +	ret = vsnprintf(sbuf, len + 1, format, arg);
 | |
| +	if (ret < 0)
 | |
| +		return -1;
 | |
| +
 | |
|  	blobmsg_add_string_buffer(buf);
 | |
|  
 | |
|  	return ret;
 |