pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/59513: formail (from mail/procmail) core dumps on iscntrl(*p)



>Number:         59513
>Category:       pkg
>Synopsis:       formail (from mail/procmail) core dumps on iscntrl(*p)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 07 03:10:00 +0000 2025
>Originator:     Robert Elz
>Release:        NetBSD 10.99.14
>Organization:
>Environment:
System: NetBSD jacaranda.noi.kre.to 10.99.14 NetBSD 10.99.14 (JACARANDA:1.1-20250706) #202: Mon Jul 7 01:16:14 +07 2025 kre%jacaranda.noi.kre.to@localhost:/usr/obj/testing/kernels/amd64/JACARANDA amd64
Architecture: x86_64
Machine: amd64
>Description:
	formail (which is built as part of pkgsrc/mail/procmail)
	includes a single use of iscntrl() which it uses as
		iscntrl(*p)
	where p is a char *.    Once upon a time that simply
	returned a random result when *p < 0, now it SEGV's (in HEAD anyway).
>How-To-Repeat:
	Use formail on a message containing any UTF-8 (unencoded)
>Fix:
	Add a new mail/procmail/patches/patch-src-formail.c
	containing something like:

--- formail.c.orig	2025-07-07 09:27:24.898676824 +0700
+++ formail.c	2025-07-07 09:14:55.802502352 +0700
@@ -897,7 +897,7 @@
   while(len)
    { switch(*p)
       { default:len--;
-	   if(iscntrl(*p))		    /* no control characters allowed */
+	   if(iscntrl(*(unsigned char *)p))		    /* no control characters allowed */
 	      break;
 	   p++;
 	   continue;





Home | Main Index | Thread Index | Old Index