diff src/util.c @ 5531:10920646988f

[gaim-migrate @ 5931] Ambrose LI (acli) writes: " This is w.r.t. the 0.64cvs as of around 20:25 EDT. When gaim starts up, it displays the signon window, and then immeidately segfaults. The problem is that tobase64() in util.c uses a size_t (which could very likely be unsigned) as a second parameter, but proxy.c calls it with a -1. " at my questioning the specific change he made: "Actually the initialization is not the matter (just something I did while debugging and did not remove, since it makes sense in any case), it's the other change that matters. In util.h, the javadoc-like comments states that passing len = -1 means that tobase64() should calculated len = strlen(buf). However, since size_t is (or can be) unsigned, the "if (len < 0)" check never succeeds, so passing -1 actually results in a very large integer being passed. So the "if (len < 0)" check actually need to be changed so that the passed "-1" will actually get recognized." so since most of us aren't segfaulting on start, i'm guessing this is a platform/os specific problem, but that the change shouldn't affect the rest of us anyway. committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Mon, 26 May 2003 12:45:05 +0000
parents 439a05a6b409
children 6f35b80c5ffa
line wrap: on
line diff
--- a/src/util.c	Mon May 26 08:30:48 2003 +0000
+++ b/src/util.c	Mon May 26 12:45:05 2003 +0000
@@ -353,10 +353,10 @@
 /* This was borrowed from the Kame source, and then tweaked to our needs */
 char *tobase64(const unsigned char *buf, size_t len)
 {
-	char *s, *rv;
+	char *s = NULL, *rv = NULL;
 	unsigned tmp;
 
-	if(len < 0)
+	if(len == (size_t)(-1))
 		len = strlen(buf);
 
 	s = g_malloc((4 * (len + 1)) / 3 + 1);