diff src/smtp_out.c @ 312:c74adb7c4f50

null-terminated the decoded base64 strings The returned size is still the same. I only alloced one byte more and filled it with zero. TODO: I'm not sure if the allocated size is exact. It's large enough but maybe too large.
author meillo@marmaro.de
date Sun, 24 Apr 2011 20:13:47 +0200
parents 4cff8638dd9b
children 412385b57dc4
line wrap: on
line diff
--- a/src/smtp_out.c	Sun Apr 24 19:37:56 2011 +0200
+++ b/src/smtp_out.c	Sun Apr 24 20:13:47 2011 +0200
@@ -628,10 +628,10 @@
 
 			DEBUG(5) debugf("smtp_out_auth_login():\n");
 			resp64 = get_response_arg(&(psb->buffer[4]));
-			DEBUG(5) debugf("  encoded response = %s\n", resp64);
+			DEBUG(5) debugf("  encoded response = `%s'\n", resp64);
 			resp = base64_decode(resp64, &resp_size);
 			g_free(resp64);
-			DEBUG(5) debugf("  decoded response = %s, size = %d\n", resp, resp_size);
+			DEBUG(5) debugf("  decoded response = `%s', size = %d\n", resp, resp_size);
 			g_free(resp);
 			reply64 = base64_encode(psb->auth_login, strlen(psb->auth_login));
 			fprintf(psb->out, "%s\r\n", reply64);
@@ -641,10 +641,10 @@
 			if ((ok = read_response(psb, SMTP_CMD_TIMEOUT))) {
 				if ((ok = check_response(psb, TRUE))) {
 					resp64 = get_response_arg(&(psb->buffer[4]));
-					DEBUG(5) debugf("  encoded response = %s\n", resp64);
+					DEBUG(5) debugf("  encoded response = `%s'\n", resp64);
 					resp = base64_decode(resp64, &resp_size);
 					g_free(resp64);
-					DEBUG(5) debugf("  decoded response = %s, size = %d\n", resp, resp_size);
+					DEBUG(5) debugf("  decoded response = `%s', size = %d\n", resp, resp_size);
 					g_free(resp);
 					reply64 = base64_encode(psb->auth_secret, strlen(psb->auth_secret));
 					fprintf(psb->out, "%s\r\n", reply64);