File fetchmail-CVE-2025-61962.patch of Package fetchmail.41233

commit 4c3cebfa4e659fb778ca2cae0ccb3f69201609a8
Author: Matthias Andree <matthias.andree@gmx.de>
Date:   Fri Oct 3 13:11:59 2025 +0200

    Security fix: avoid NULL+1 deref on invalid AUTH reply
    
    When fetchmail receives a 334 reply from the SMTP server
    that does not contain the mandated blank after that response
    code, it will attempt reading from memory location 1, which
    will usually lead to a crash.
    
    The simpler fix would have been to check for four bytes "334 "
    instead of three bytes "334" but that would make malformed
    replies and those that don't match the expected reply code
    indistinguishable.

Index: fetchmail-6.3.26/smtp.c
===================================================================
--- fetchmail-6.3.26.orig/smtp.c
+++ fetchmail-6.3.26/smtp.c
@@ -89,6 +89,11 @@ static void SMTP_auth(int sock, char smt
 		}
 
 		p = strchr(tmp, ' ');
+		if (!p) {
+			report(stderr, "%s: \"%s\"\n", GT_("Malformed server reply"), visbuf(tmp));
+			SMTP_auth_error(sock, "");
+			return;
+		}
 		p++;
 		/* (hmh) from64tobits will not NULL-terminate strings! */
 		if (from64tobits(b64buf, p, sizeof(b64buf) - 1) <= 0) {
@@ -139,6 +144,11 @@ static void SMTP_auth(int sock, char smt
 		}
 
 		p = strchr(tmp, ' ');
+		if (!p) {
+			report(stderr, "%s: \"%s\"\n", GT_("Malformed server reply"), visbuf(tmp));
+			SMTP_auth_error(sock, "");
+			return;
+		}
 		p++;
 		if (from64tobits(b64buf, p, sizeof(b64buf) - 1) <= 0) {
 			SMTP_auth_error(sock, GT_("Bad base64 reply from server.\n"));
openSUSE Build Service is sponsored by