gnome-keyring r1167 - in trunk: . common



Author: nnielsen
Date: Wed Jul  2 16:15:37 2008
New Revision: 1167
URL: http://svn.gnome.org/viewvc/gnome-keyring?rev=1167&view=rev

Log:
	* common/gkr-buffer.c: Better checks, and buffer handling.
	Bugs found by Jon Burgress. 


Modified:
   trunk/ChangeLog
   trunk/common/gkr-buffer.c

Modified: trunk/common/gkr-buffer.c
==============================================================================
--- trunk/common/gkr-buffer.c	(original)
+++ trunk/common/gkr-buffer.c	Wed Jul  2 16:15:37 2008
@@ -441,15 +441,15 @@
 gkr_buffer_add_string (GkrBuffer *buffer, const char *str)
 {
 	if (str == NULL) {
-		gkr_buffer_add_uint32 (buffer, 0xffffffff);
+		return gkr_buffer_add_uint32 (buffer, 0xffffffff);
 	} else {
 		size_t len = strlen (str);
 		if (len >= 0x7fffffff)
 			return 0;
-		gkr_buffer_add_uint32 (buffer, len);
-		gkr_buffer_append (buffer, (unsigned char*)str, len);
+		if (!gkr_buffer_add_uint32 (buffer, len))
+			return 0;
+		return gkr_buffer_append (buffer, (unsigned char*)str, len);
 	}
-	return 1;
 }
 
 int
@@ -485,7 +485,7 @@
 	*str_ret = (allocator) (NULL, len + 1);
 	if (!*str_ret)
 		return 0;
-	memcpy (*str_ret, buffer->buf + offset, len + 1);
+	memcpy (*str_ret, buffer->buf + offset, len);
 
 	/* Always zero terminate */
 	(*str_ret)[len] = 0;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]