summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <khem.raj@oss.qualcomm.com>2026-05-15 07:34:47 -0700
committerKhem Raj <khem.raj@oss.qualcomm.com>2026-05-15 09:39:16 -0700
commitf8787b56f3d67142ab97cc4886afe31fac8b51bc (patch)
tree0fdd925586e710138dedeb78cc46eb1cc9c9085f
parent428d1462371715d1675e8e620dcd9a66107b8b62 (diff)
downloadmeta-openembedded-f8787b56f3d67142ab97cc4886afe31fac8b51bc.tar.gz
procmail: Upgrade to 3.24
Drop patches to support newer toolchains added overtime Add consolidated patch to support cross compiling Use github for SRC_URI Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
-rw-r--r--meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch88
-rw-r--r--meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch27
-rw-r--r--meta-oe/recipes-support/procmail/procmail/CVE-2014-3618.patch29
-rw-r--r--meta-oe/recipes-support/procmail/procmail/CVE-2017-16844.patch20
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch608
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch85
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch129
-rw-r--r--meta-oe/recipes-support/procmail/procmail/gcc14.patch127
-rw-r--r--meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch62
-rw-r--r--meta-oe/recipes-support/procmail/procmail/procmail-3.24-consolidated_fixes-1.patch253
-rw-r--r--meta-oe/recipes-support/procmail/procmail_3.24.bb (renamed from meta-oe/recipes-support/procmail/procmail_3.22.bb)30
11 files changed, 264 insertions, 1194 deletions
diff --git a/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch b/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch
deleted file mode 100644
index 9b98720b2e..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch
+++ /dev/null
@@ -1,88 +0,0 @@
1From 6f00795de8623347580c4366cb517a6653f73ca4 Mon Sep 17 00:00:00 2001
2From: Liu Yiding <liuyd.fnst@fujitsu.com>
3Date: Mon, 9 Jun 2025 08:01:39 +0000
4Subject: [PATCH] fix too many arguments issue
5
6fix issue like:
7| procmail.c:76:12: error: too many arguments to function 'auth_finduid'; expected 0, have 2
8| 76 | if(tpass=auth_finduid(uid,0)) /* save by copying */
9| | ^~~~~~~~~~~~ ~~~
10| In file included from procmail.c:36:
11| authenticate.h:15:3: note: declared here
12| 15 | *auth_finduid Q((const uid_t uid,const int sock));
13| --
14| procmail.c:212:9: error: too many arguments to function 'checkprivFrom_'; expected 0, have 3
15| 212 | checkprivFrom_(euid,passinvk?auth_username(passinvk):0,override);
16| | ^~~~~~~~~~~~~~ ~~~~
17| In file included from procmail.c:41:
18| from.h:9:2: note: declared here
19| 9 | checkprivFrom_ Q((uid_t euid,const char*logname,int override));
20| --
21| procmail.c:213:9: error: too many arguments to function 'doumask'; expected 0, have 1
22| 213 | doumask(INIT_UMASK); /* allowed to set the From_ line? */
23| | ^~~~~~~
24| In file included from procmail.c:23:
25| robust.h:12:2: note: declared here
26| 12 | doumask Q((const mode_t mask));
27
28Upstream-Status: Submitted [https://github.com/BuGlessRB/procmail/pull/11]
29Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
30---
31 src/authenticate.h | 2 +-
32 src/exopen.c | 2 +-
33 src/includes.h | 2 +-
34 src/misc.h | 1 +
35 4 files changed, 4 insertions(+), 3 deletions(-)
36
37diff --git a/src/authenticate.h b/src/authenticate.h
38index be9d88d..31e665a 100644
39--- a/src/authenticate.h
40+++ b/src/authenticate.h
41@@ -7,7 +7,7 @@ typedef struct auth_identity auth_identity;
42
43 #ifndef P
44 #define P(x) x
45-#define Q(x) ()
46+#define Q(x) x
47 #endif
48
49 /*const*/auth_identity
50diff --git a/src/exopen.c b/src/exopen.c
51index c7647e5..46e3467 100644
52--- a/src/exopen.c
53+++ b/src/exopen.c
54@@ -51,7 +51,7 @@ static const char*safehost P((void)) /* return a hostname safe for filenames */
55 return sname;
56 }
57
58-int unique(full,p,len,mode,verbos,flags)char*const full;char*p;
59+int unique(full,p,len,mode,verbos,flags)const char*const full;char*p;
60 const size_t len;const mode_t mode;const int verbos,flags;
61 { static const char s2c[]=".,+%";static int serial=STRLEN(s2c);
62 static time_t t;char*dot,*end,*host;struct stat filebuf;
63diff --git a/src/includes.h b/src/includes.h
64index 7d6b41f..134805b 100644
65--- a/src/includes.h
66+++ b/src/includes.h
67@@ -530,7 +530,7 @@ extern void*memmove();
68 * problems caused by one of those types being shorter than int and thereby
69 * being passed differently under ANSI rules.
70 */
71-#define Q(args) ()
72+#define Q(args) args
73
74 #ifdef oBRAIN_DAMAGE
75 #undef oBRAIN_DAMAGE
76diff --git a/src/misc.h b/src/misc.h
77index 4f62ebc..659dfcb 100644
78--- a/src/misc.h
79+++ b/src/misc.h
80@@ -1,4 +1,5 @@
81 /*$Id: misc.h,v 1.56 2001/06/30 01:14:19 guenther Exp $*/
82+#include "authenticate.h"
83
84 struct dyna_array{int filled,tspace;char*vals;};
85 union offori{off_t o;int i;};
86--
872.43.0
88
diff --git a/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch b/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch
deleted file mode 100644
index adbc4f584a..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From a9e57d4048c94f6bc2533ccc41e6c35d4416571a Mon Sep 17 00:00:00 2001
2From: Liu Yiding <liuyd.fnst@fujitsu.com>
3Date: Mon, 9 Jun 2025 06:44:06 +0000
4Subject: [PATCH] fix uname declaration
5
6Upstream-Status: Submitted [https://github.com/BuGlessRB/procmail/pull/11]
7Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
8---
9 src/includes.h | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/src/includes.h b/src/includes.h
13index 4466907..7d6b41f 100644
14--- a/src/includes.h
15+++ b/src/includes.h
16@@ -331,7 +331,7 @@ extern int errno;
17
18 #ifndef NOuname
19 #ifndef P /* SINIX V5.23 has the wrong prototype for uname() */
20-extern int uname(); /* so we fix it :-) */
21+extern int uname(struct utsname *);
22 #define Uname(name) ((int(*)(struct utsname*))uname)(name)
23 #else
24 #define Uname(name) uname(name) /* no fix needed */
25--
262.43.0
27
diff --git a/meta-oe/recipes-support/procmail/procmail/CVE-2014-3618.patch b/meta-oe/recipes-support/procmail/procmail/CVE-2014-3618.patch
deleted file mode 100644
index b041924361..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/CVE-2014-3618.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1Description: Fix heap-overflow in formail
2 CVE-2014-3618: Heap-overflow in formail when processing
3 specially-crafted email headers.
4Origin: http://www.openwall.com/lists/oss-security/2014/09/03/8
5Bug-Debian: https://bugs.debian.org/704675
6Bug-Debian: https://bugs.debian.org/760443
7Forwarded: not-needed
8Last-Update: 2014-09-04
9
10CVE: CVE-2014-3618
11Upstream-Status: Inactive-Upstream [lastrelease: 2001]
12Signed-off-by: Peter Marko <peter.marko@siemens.com>
13
14--- a/src/formisc.c
15+++ b/src/formisc.c
16@@ -84,12 +84,11 @@ normal: *target++= *start++;
17 case '"':*target++=delim='"';start++;
18 }
19 ;{ int i;
20- do
21+ while(*start)
22 if((i= *target++= *start++)==delim) /* corresponding delimiter? */
23 break;
24 else if(i=='\\'&&*start) /* skip quoted character */
25 *target++= *start++;
26- while(*start); /* anything? */
27 }
28 hitspc=2;
29 }
diff --git a/meta-oe/recipes-support/procmail/procmail/CVE-2017-16844.patch b/meta-oe/recipes-support/procmail/procmail/CVE-2017-16844.patch
deleted file mode 100644
index 6e04989c33..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/CVE-2017-16844.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1From: Santiago Vila <sanvila@debian.org>
2Subject: Fix heap-based buffer overflow in loadbuf()
3Bug-Debian: http://bugs.debian.org/876511
4X-Debian-version: 3.22-26
5
6CVE: CVE-2017-16844
7Upstream-Status: Inactive-Upstream [lastrelease: 2001]
8Signed-off-by: Peter Marko <peter.marko@siemens.com>
9
10--- a/src/formisc.c
11+++ b/src/formisc.c
12@@ -103,7 +103,7 @@
13 }
14 /* append to buf */
15 void loadbuf(text,len)const char*const text;const size_t len;
16-{ if(buffilled+len>buflen) /* buf can't hold the text */
17+{ while(buffilled+len>buflen) /* buf can't hold the text */
18 buf=realloc(buf,buflen+=Bsize);
19 tmemmove(buf+buffilled,text,len);buffilled+=len;
20 }
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
deleted file mode 100644
index c1f9ce7eca..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
+++ /dev/null
@@ -1,608 +0,0 @@
1From 898e9514bc889b4a540f667efed95a5af101c824 Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 2 Dec 2014 07:00:36 +0900
4Subject: [PATCH 1/3] From debian to fix compile errors
5
6Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
7---
8Upstream-Status: Pending
9
10 src/Makefile.0 | 7 +++----
11 src/autoconf | 64 +++++++++++++-------------------------------------------
12 src/comsat.c | 65 +++++++++++++++++++--------------------------------------
13 src/fields.c | 6 +++---
14 src/foldinfo.h | 2 +-
15 src/formail.c | 6 +++---
16 src/formisc.c | 2 +-
17 src/formisc.h | 2 +-
18 src/mailfold.c | 14 ++++++++++---
19 src/manconf.c | 2 +-
20 src/memblk.c | 24 ++++++++++-----------
21 src/memblk.h | 2 +-
22 src/network.h | 10 ++-------
23 src/pipes.c | 10 ++++-----
24 src/procmail.c | 3 +--
25 src/recommend.c | 2 +-
26 16 files changed, 81 insertions(+), 140 deletions(-)
27
28diff --git a/src/Makefile.0 b/src/Makefile.0
29index 6eb5b51..15a2039 100644
30--- a/src/Makefile.0
31+++ b/src/Makefile.0
32@@ -40,7 +40,7 @@ multigram: multigram.$(O) $(MG_OBJ) setid
33 @cd ..; $(MAKE) config.check
34
35 _autotst: _autotst.$(O) sublib.c sublib.h
36- $(CC) $(CFLAGS) $@.$(O) -o $@ $(LDFLAGS)
37+ gcc $@.$(O) -o $@ $(LDFLAGS)
38
39 ../autoconf.h: autoconf Makefile ../patchlevel.h
40 @echo No this was not make -n >make_n
41@@ -175,17 +175,16 @@ recommend: recommend.$(O) sublib.$(O)
42
43 ../man/man.sed: manconf.c ../autoconf.h ../config.h includes.h procmail.h
44 ../man/man.sed: ../patchlevel.h
45- @$(CC) $(CFLAGS) "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
46+ gcc "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
47 manconf.c $(LDFLAGS)
48 @./_autotst $@
49 @echo Housekeeping file >$@
50- @$(RM) _autotst
51
52 clean:
53 $(RM) -r _locktest
54 $(RM) procmail.$(O) $(PM_OBJ) lockfile.$(O) $(LF_OBJ) formail.$O \
55 $(FM_OBJ) multigram.$(O) $(MG_OBJ) $(BINSS) multigram ../autoconf.h \
56- _autotst* lookfor _locktst* grepfor recommend recommend.$(O) manconf \
57+ lookfor _locktst* grepfor recommend recommend.$(O) manconf \
58 _Makefile lock.log *core* targetdir.h setid setid.$(O) gethome \
59 gethome.$(O) make_n realloc.log
60
61diff --git a/src/autoconf b/src/autoconf
62index 1cb4c42..ff78048 100755
63--- a/src/autoconf
64+++ b/src/autoconf
65@@ -68,8 +68,6 @@
66 # #define NOfsync
67 #Ok #define endpwent()
68 #Ok #define endgrent()
69-#Ok #define endhostent()
70-#Ok #define endservent()
71 #Ok #define endprotoent()
72 # #define h_0addr_list h_addr
73 #Ok #define NOpw_passwd
74@@ -896,7 +894,7 @@ int main(){int i=0;
75 {uid_t vuid_t;i+=vuid_t=1;}
76 {gid_t vgid_t;i+=vgid_t=1;}
77 #ifndef NO_COMSAT
78- {struct hostent vhostent;i+=!(vhostent.h_addr_list=0);}
79+ {struct addrinfo res; i+=!(res.ai_socktype=0);}
80 #endif
81 #ifndef NOuname
82 {struct utsname vutsname;i+=!(*vutsname.nodename='\0');}
83@@ -917,8 +915,6 @@ do
84 test -z "$i3" && grepfor mode_t 'typedef int mode_t;' && i3=I
85 test -z "$i4" && grepfor uid_t 'typedef int uid_t;' && i4=I
86 test -z "$i5" && grepfor gid_t 'typedef int gid_t;' && i5=I
87- test -z "$i6" && grepfor h_addr_list '#define h_0addr_list h_addr' && i6=I
88- test -z "$i6" && grepfor hostent '#define h_0addr_list h_addr' && i6=I
89 test -z "$i6" && grepfor member '#define h_0addr_list h_addr' && i6=I
90 test -z "$i7" && grepfor utsname "#define NOuname \
91 /* <sys/utsname.h> is there, but empty */" && i7=I
92@@ -1048,8 +1044,12 @@ int main(){char a[2];
93 {struct utsname b;uname(&b);}
94 #endif
95 #ifndef NO_COMSAT
96- gethostbyname("0");getprotobyname(COMSATprotocol);endhostent();endservent();
97- endprotoent();
98+ {
99+ struct addrinfo *res, hints;
100+ memset(&hints, '\0', sizeof(hints));
101+ if(getaddrinfo(COMSAThost,BIFF_serviceport,&hints,&res))
102+ freeaddrinfo(res);
103+ }
104 #endif
105 _exit(0);
106 return 0;}
107@@ -1103,14 +1103,9 @@ grepfor uname "\
108 /* <sys/utsname.h> defines it, the libraries don't */"
109 grepfor endpwent '#define endpwent()'
110 grepfor endgrent '#define endgrent()'
111-if grepfor gethostbyname '#define NO_COMSAT'
112+if grepfor getaddrinfo '#define NO_COMSAT'
113 then
114 :
115-else
116- grepfor getprotobyname '#define UDP_protocolno 17'
117- grepfor endhostent '#define endhostent()'
118- grepfor endservent '#define endservent()'
119- grepfor endprotoent '#define endprotoent()'
120 fi
121 grepfor strstr '#define SLOWstrstr' ||
122 grepfor clock '#define SLOWstrstr'
123@@ -1239,39 +1234,9 @@ int main(argc,argv)int argc;const char*argv[];
124 printf("/* Insufficient memory to perform the benchmark! */\n");
125 #endif /* SLOWstrstr */
126 #ifndef NO_COMSAT
127-#ifndef UDP_protocolno
128- ;{ const struct protoent*p;
129- if(p=getprotobyname(COMSATprotocol))
130- { printf("#define UDP_protocolno %d\n",p->p_proto);
131-#else
132- ;{ if(1)
133- {
134-#endif
135- ;{ const struct servent*serv;
136- if(serv=getservbyname(COMSATservice,COMSATprotocol))
137- printf("#define BIFF_serviceport \"%d\"\n",
138- ntohs(serv->s_port));
139- }
140-#ifdef AF_INET
141- ;{ const struct hostent*host;
142- if(!strcmp("localhost",COMSAThost)&&
143- (host=gethostbyname(COMSAThost))&&
144- host->h_0addr_list&&host->h_addrtype==AF_INET&&
145- host->h_length)
146- { int j=host->h_length;
147- const unsigned char*ad=(void*)host->h_0addr_list;
148- printf("#define IP_localhost {");
149- printf("%d",*ad++);
150- while(--j)
151- printf(",%d",*ad++);
152- puts("}");
153- }
154- }
155+#ifndef AF_INET
156+ puts("#define NO_COMSAT");
157 #endif /* AF_INET */
158- }
159- else
160- puts("#define NO_COMSAT");
161- }
162 #endif /* NO_COMSAT */
163 ;{ unsigned long s=(size_t)~0;int bits;
164 for(bits=1;s>>=1;bits++);
165@@ -1470,15 +1435,14 @@ cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
166 grep 'Mlocal.*procmail' >$DEVNULL ||
167 echo '#define CF_no_procmail_yet' >>$ACONF
168
169-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
170- grep '^V' >$DEVNULL ||
171- echo '#define buggy_SENDMAIL' >>$ACONF
172+# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
173+# grep '^V' >$DEVNULL ||
174+# echo '#define buggy_SENDMAIL' >>$ACONF
175
176 lpath='/bin'
177 bins="/bin"
178
179-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \
180- /global/bin /usr/bin/X11 /usr/X*/bin
181+for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin
182 do
183 if test -d $newd
184 then
185diff --git a/src/comsat.c b/src/comsat.c
186index 77dba34..5082b16 100644
187--- a/src/comsat.c
188+++ b/src/comsat.c
189@@ -27,7 +27,8 @@ static /*const*/char rcsid[]=
190 #include "comsat.h"
191
192 static int csvalid; /* is it turned on with a good address? */
193-static struct sockaddr_in csaddr;
194+static struct addrinfo cai;
195+static struct sockaddr *csaddr;
196 static char*cslastf,*cslgname;
197
198 void setlfcs(folder)const char*folder; /* set lastfolder for comsat */
199@@ -62,56 +63,32 @@ void setlgcs(name)const char*name; /* set logname for comsat */
200 }
201
202 int setcomsat(chp)const char*chp;
203-{ char*chad;int newvalid; struct sockaddr_in newaddr;
204+{ char*chad;int newvalid; struct addrinfo *res, hints;
205 chad=strchr(chp,SERV_ADDRsep); /* @ separator? */
206 if(!chad&&!renvint(-1L,chp))
207 return csvalid=0; /* turned off comsat */
208 newvalid=1;
209 if(chad)
210 *chad++='\0'; /* split the specifier */
211+ if(!chad||!*chp) /* no service */
212+ chp=BIFF_serviceport; /* new balls please! */
213 if(!chad||!*chad) /* no host */
214-#ifndef IP_localhost /* Is "localhost" preresolved? */
215 chad=COMSAThost; /* nope, use default */
216-#else /* IP_localhost */
217- { static const unsigned char ip_localhost[]=IP_localhost;
218- newaddr.sin_family=AF_INET;
219- tmemmove(&newaddr.sin_addr,ip_localhost,sizeof ip_localhost);
220- }
221- else
222-#endif /* IP_localhost */
223- { const struct hostent*host; /* what host? paranoid checks */
224- if(!(host=gethostbyname(chad))||!host->h_0addr_list)
225- { bbzero(&newaddr.sin_addr,sizeof newaddr.sin_addr);
226- newvalid=0; /* host can't be found, too bad */
227- }
228- else
229- { newaddr.sin_family=host->h_addrtype; /* address number found */
230- tmemmove(&newaddr.sin_addr,host->h_0addr_list,host->h_length);
231- }
232- endhostent();
233- }
234- if(newvalid) /* so far, so good */
235- { int s;
236- if(!*chp) /* no service */
237- chp=BIFF_serviceport; /* new balls please! */
238- s=strtol(chp,&chad,10);
239- if(chp!=chad) /* the service is not numeric */
240- newaddr.sin_port=htons((short)s); /* network order */
241- else
242- { const struct servent*serv;
243- serv=getservbyname(chp,COMSATprotocol); /* so get its no. */
244- if(serv)
245- newaddr.sin_port=serv->s_port;
246- else
247- { newaddr.sin_port=htons((short)0); /* no such service */
248- newvalid=0;
249- }
250- endservent();
251- }
252- }
253+ bzero(&hints,sizeof(hints));
254+ hints.ai_socktype=SOCK_DGRAM;
255+ hints.ai_flags=AI_ADDRCONFIG;
256+ if(getaddrinfo(chad,chp,&hints,&res))
257+ newvalid=0;
258+
259 onguard(); /* update the address atomically */
260 if(csvalid=newvalid)
261- tmemmove(&csaddr,&newaddr,sizeof(newaddr));
262+ { if(csaddr)
263+ free(csaddr);
264+ csaddr=malloc(res->ai_addrlen);
265+ tmemmove(csaddr,res->ai_addr,res->ai_addrlen);
266+ tmemmove(&cai,res,sizeof(cai));
267+ freeaddrinfo(res);
268+ }
269 offguard();
270 return newvalid;
271 }
272@@ -120,7 +97,7 @@ void sendcomsat(folder)const char*folder;
273 { int s;const char*p;
274 if(!csvalid||!buf) /* is comat on and set to a valid address? */
275 return;
276- if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */
277+ if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */
278 return;
279 if(!(p=folder?folder:cslastf)) /* do we have a folder? */
280 return;
281@@ -132,8 +109,8 @@ void sendcomsat(folder)const char*folder;
282 }
283 strlcat(buf,COMSATxtrsep,linebuf); /* custom seperator */
284 strlcat(buf,p,linebuf); /* where was it delivered? */
285- if((s=socket(AF_INET,SOCK_DGRAM,UDP_protocolno))>=0)
286- { sendto(s,buf,strlen(buf),0,(struct sockaddr*)&csaddr,sizeof(csaddr));
287+ if((s=socket(cai.ai_family,cai.ai_socktype,cai.ai_protocol))>=0)
288+ { sendto(s,buf,strlen(buf),0,csaddr,cai.ai_addrlen);
289 rclose(s);
290 yell("Notified comsat:",buf);
291 }
292diff --git a/src/fields.c b/src/fields.c
293index a2bd77f..37ed154 100644
294--- a/src/fields.c
295+++ b/src/fields.c
296@@ -110,16 +110,16 @@ void dispfield(p)register const struct field*p;
297 /* try and append one valid field to rdheader from stdin */
298 int readhead P((void))
299 { int idlen;
300- getline();
301+ get_line();
302 if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
303 return 0;
304 if(idlen==STRLEN(FROM)&&eqFrom_(buf)) /* it's a From_ line */
305 { if(rdheader)
306 return 0; /* the From_ line was a fake! */
307- for(;buflast=='>';getline()); /* gather continued >From_ lines */
308+ for(;buflast=='>';get_line()); /* gather continued >From_ lines */
309 }
310 else
311- for(;;getline()) /* get the rest of the continued field */
312+ for(;;get_line()) /* get the rest of the continued field */
313 { switch(buflast) /* will this line be continued? */
314 { case ' ':case '\t': /* yep, it sure is */
315 continue;
316diff --git a/src/foldinfo.h b/src/foldinfo.h
317index 9e4ebb6..797f9be 100644
318--- a/src/foldinfo.h
319+++ b/src/foldinfo.h
320@@ -10,7 +10,7 @@
321
322 #define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */
323 #define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */
324-#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */
325+#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */
326 #define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */
327 #define ft_checkcloser(type) ((type)>ft_MH)
328 #define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */
329diff --git a/src/formail.c b/src/formail.c
330index fe5e6be..1f5c9dd 100644
331--- a/src/formail.c
332+++ b/src/formail.c
333@@ -758,9 +758,9 @@ startover:
334 lputssn(buf,buffilled),ctlength-=buffilled,buffilled=lnl=0;
335 ;{ int tbl=buflast,lwr='\n';
336 while(--ctlength>=0&&tbl!=EOF) /* skip Content-Length: bytes */
337- lnl=lwr==tbl&&lwr=='\n',putcs(lwr=tbl),tbl=getchar();
338+ lnl=lwr==tbl&&lwr=='\n',lputcs(lwr=tbl),tbl=getchar();
339 if((buflast=tbl)=='\n'&&lwr!=tbl) /* just before a line break? */
340- putcs('\n'),buflast=getchar(); /* wrap up loose end */
341+ lputcs('\n'),buflast=getchar(); /* wrap up loose end */
342 }
343 if(!quiet&&ctlength>0)
344 { charNUM(num,ctlength);
345@@ -819,7 +819,7 @@ splitit: { if(!lnl) /* did the previous mail end with an empty line? */
346 { if(split) /* gobble up the next start separator */
347 { buffilled=0;
348 #ifdef sMAILBOX_SEPARATOR
349- getline();buffilled=0; /* but only if it's defined */
350+ get_line();buffilled=0; /* but only if it's defined */
351 #endif
352 if(buflast!=EOF) /* if any */
353 goto splitit;
354diff --git a/src/formisc.c b/src/formisc.c
355index d6cab90..338733b 100644
356--- a/src/formisc.c
357+++ b/src/formisc.c
358@@ -115,7 +115,7 @@ void loadchar(c)const int c; /* append one character to buf */
359 buf[buffilled++]=c;
360 }
361
362-int getline P((void)) /* read a newline-terminated line */
363+int get_line P((void)) /* read a newline-terminated line */
364 { if(buflast==EOF) /* at the end of our Latin already? */
365 { loadchar('\n'); /* fake empty line */
366 return EOF; /* spread the word */
367diff --git a/src/formisc.h b/src/formisc.h
368index 1c4ca20..f25211c 100644
369--- a/src/formisc.h
370+++ b/src/formisc.h
371@@ -17,4 +17,4 @@ void
372 char*
373 skipwords P((char*start));
374 int
375- getline P((void));
376+ get_line P((void));
377diff --git a/src/mailfold.c b/src/mailfold.c
378index 917b502..6c8bcf4 100644
379--- a/src/mailfold.c
380+++ b/src/mailfold.c
381@@ -30,6 +30,7 @@ static /*const*/char rcsid[]=
382
383 int logopened,rawnonl;
384 off_t lasttell;
385+static int trunced;
386 static long lastdump;
387 static volatile int mailread; /* if the mail is completely read in already */
388 static struct dyna_array confield; /* escapes, concatenations */
389@@ -81,6 +82,7 @@ long dump(s,type,source,len)const int s,type;const char*source;
390 long len;
391 { int i;long part;
392 lasttell=i= -1;SETerrno(EBADF);
393+ trunced=0;
394 if(s>=0)
395 { if(ft_lock(type)&&(lseek(s,(off_t)0,SEEK_END),fdlock(s)))
396 nlog("Kernel-lock failed\n");
397@@ -120,13 +122,18 @@ jin: while(part&&(i=rwrite(s,source,BLKSIZ<part?BLKSIZ:(int)part)))
398 }
399 writefin:
400 i=type!=ft_PIPE&&fsync(s)&&errno!=EINVAL; /* EINVAL => wasn't a file */
401+ if ((i||len)&&lasttell>=0)
402+ { int serrno=errno;
403+ if(!ftruncate(s,lasttell)) trunced=1;
404+ SETerrno(serrno);
405+ }
406 if(ft_lock(type))
407 { int serrno=errno; /* save any error information */
408 if(fdunlock())
409 nlog("Kernel-unlock failed\n");
410 SETerrno(serrno);
411 }
412- i=rclose(s)||i;
413+ i=rclose(s)||i; /* if this fails, we should truncate, but it's too late */
414 } /* return an error even if nothing was to be sent */
415 return i&&!len?-1:len;
416 }
417@@ -237,7 +244,7 @@ dumpf: { switch(errno)
418 #endif
419 default:writeerr(buf);
420 }
421- if(lasttell>=0&&!truncate(boxname,lasttell)&&(logopened||verbose))
422+ if(lasttell>=0&&trunced&&(logopened||verbose))
423 nlog("Truncated file to former size\n"); /* undo garbage */
424 ret0: return 0;
425 }
426@@ -378,7 +385,8 @@ void readmail(rhead,tobesent)const long tobesent;
427 dfilled=mailread=0;
428 else if(rhead) /* only read in a new header */
429 { memblk new;
430- dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0);
431+ dfilled=mailread=0;makeblock(&new,0);
432+ readdyn(&new,&dfilled,thebody-themail.p);
433 if(tobesent>dfilled&&isprivate) /* put it in place here */
434 { tmemmove(themail.p+dfilled,thebody,filled-=tobesent);
435 tmemmove(themail.p,new.p,dfilled);
436diff --git a/src/manconf.c b/src/manconf.c
437index a9e9f1c..5c8ec36 100644
438--- a/src/manconf.c
439+++ b/src/manconf.c
440@@ -233,7 +233,7 @@ a security violation was found (e.g. \1.B \2-@PRESERVOPT@\1or variable\
441 \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1");
442 pc("LMTPOPT",LMTPOPT);
443 #else
444- ps("LMTPOPTdesc","");ps("LMTPusage","");
445+ ps("LMTPOPTdesc","");ps("LMTPusage","\1");
446 #endif
447 pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--;
448 pn("DEFlinebuf",DEFlinebuf);
449diff --git a/src/memblk.c b/src/memblk.c
450index e2f13f0..97e02d3 100644
451--- a/src/memblk.c
452+++ b/src/memblk.c
453@@ -51,11 +51,11 @@ void lockblock(mb)memblk*const mb;
454 {
455 #ifdef USE_MMAP
456 if(mb->fd>=0)
457- { long len=mb->len+1;
458- if(munmap(mb->p,len))
459- mmapfailed(len); /* don't want to continue here */
460- if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
461- mmapfailed(len);
462+ { long mlen=mb->len+1;
463+ if(munmap(mb->p,mlen))
464+ mmapfailed(mlen); /* don't want to continue here */
465+ if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
466+ mmapfailed(mlen);
467 close(mb->fd);
468 mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */
469 }
470@@ -77,8 +77,8 @@ int resizeblock(mb,len,nonfatal)memblk*const mb;const long len;
471 strcpy(filename,MMAP_DIR);
472 if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&&
473 (mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0))
474- { mb->filelen=len;
475- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
476+ { mb->filelen=len+1;
477+ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
478 dropf: { close(mb->fd);mb->fd= -1;
479 if(verbose)nlog("Unable to extend or use tempfile");
480 }
481@@ -98,9 +98,9 @@ dropf: { close(mb->fd);mb->fd= -1;
482 }
483 }
484 if(mb->fd>=0)
485- { if(len>mb->filelen) /* need to extend? */
486- { mb->filelen=len;
487- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
488+ { if(len>=mb->filelen) /* need to extend? */
489+ { mb->filelen=len+1;
490+ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
491 { char*p=malloc(len+1); /* can't extend, switch to malloc */
492 tmemmove(p,mb->p,mb->len);
493 munmap(mb->p,mb->len+1);
494@@ -124,9 +124,9 @@ mmap: if((mb->p=mmap(0,len+1,P_RW,MAP_SHARED,mb->fd,(off_t)0))==MAP_FAILED)
495 }
496 else
497 mb->p=realloc(mb->p,len+1);
498- mb->len=len+1;
499- mb->p[len]='\0';
500+ mb->len=len;
501 ret1:
502+ mb->p[len]='\0';
503 return 1;
504 }
505
506diff --git a/src/memblk.h b/src/memblk.h
507index 6fd1d1d..b57f369 100644
508--- a/src/memblk.h
509+++ b/src/memblk.h
510@@ -1,6 +1,6 @@
511 typedef struct memblk {
512 char*p; /* where it starts */
513- long len; /* currently allocated size */
514+ long len; /* current size, not including trailing NUL */
515 #ifdef USE_MMAP
516 off_t filelen; /* how long is the file */
517 int fd; /* file which is mmap()ed */
518diff --git a/src/network.h b/src/network.h
519index d7d08f2..b09b6c4 100644
520--- a/src/network.h
521+++ b/src/network.h
522@@ -1,19 +1,13 @@
523 /*$Id: network.h,v 1.7 1997/04/02 03:15:41 srb Exp $*/
524
525-#include <sys/socket.h> /* socket() sendto() AF_INET
526+#include <sys/socket.h> /* socket() sendto() */
527 /* SOCK_DGRAM */
528-#include <netdb.h> /* gethostbyname() getservbyname()
529- /* getprotobyname() */
530-#include <netinet/in.h> /* htons() struct sockaddr_in */
531+#include <netdb.h> /* getaddrinfo() */
532
533 #ifndef BIFF_serviceport
534 #define BIFF_serviceport COMSATservice
535 #endif
536
537-#ifndef h_0addr_list
538-#define h_0addr_list h_addr_list[0] /* POSIX struct member */
539-#endif
540-
541 #ifndef NO_const /* since network.h is outside the autoconf const check */
542 #ifdef const /* loop, we need this backcheck for some systems */
543 #undef const
544diff --git a/src/pipes.c b/src/pipes.c
545index 1fdb9e6..7754300 100644
546--- a/src/pipes.c
547+++ b/src/pipes.c
548@@ -145,7 +145,9 @@ int pipthrough(line,source,len)char*line,*source;const long len;
549 if(Stdout)
550 { *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */
551 if(!(backblock=getenv(Stdout))) /* no current value? */
552- PRDB=PWRB= -1;
553+ { PRDB=PWRB= -1;
554+ backlen=0;
555+ }
556 else
557 { backlen=strlen(backblock);
558 goto pip;
559@@ -155,9 +157,7 @@ int pipthrough(line,source,len)char*line,*source;const long len;
560 pip: rpipe(pbackfd);
561 rpipe(pinfd); /* main pipes setup */
562 if(!(pidchild=sfork())) /* create a sending procmail */
563- { if(Stdout&&backblock)
564- backlen=strlen(backblock);
565- else
566+ { if(!Stdout)
567 backblock=source,backlen=len;
568 childsetup();rclose(PRDI);rclose(PRDB);
569 rpipe(poutfd);rclose(STDOUT);
570@@ -194,7 +194,7 @@ perr: progerr(line,excode,pwait==4); /* I'm going to tell my mommy! */
571 makeblock(&temp,Stdfilled);
572 tmemmove(temp.p,Stdout,Stdfilled);
573 readdyn(&temp,&Stdfilled,Stdfilled+backlen+1);
574- Stdout=realloc(Stdout,&Stdfilled+1);
575+ Stdout=realloc(Stdout,Stdfilled+1);
576 tmemmove(Stdout,temp.p,Stdfilled+1);
577 freeblock(&temp);
578 retStdout(Stdout,pwait&&pipw,!backblock);
579diff --git a/src/procmail.c b/src/procmail.c
580index 4a232f2..2bb449b 100644
581--- a/src/procmail.c
582+++ b/src/procmail.c
583@@ -652,8 +652,7 @@ commint:do skipspace(); /* skip whitespace */
584 nrcond= -1;
585 if(tolock) /* clear temporary buffer for lockfile name */
586 free(tolock);
587- for(i=maxindex(flags);i;i--) /* clear the flags */
588- flags[i]=0;
589+ bbzero(flags,sizeof(flags)); /* clear the flags */
590 for(tolock=0,locknext=0;;)
591 { chp=skpspace(chp);
592 switch(i= *chp++)
593diff --git a/src/recommend.c b/src/recommend.c
594index 5d41e01..9002268 100644
595--- a/src/recommend.c
596+++ b/src/recommend.c
597@@ -47,7 +47,7 @@ int main(argc,argv)const int argc;const char*const argv[];
598 printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]);
599 else if(chmdir==1)
600 goto nogchmod;
601- if(chmdir)
602+ if(0)
603 printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir);
604 nogchmod:
605 return EXIT_SUCCESS;
606--
6071.8.4.2
608
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
deleted file mode 100644
index 78ac6241d0..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
+++ /dev/null
@@ -1,85 +0,0 @@
1From 3cbc5e6e624235f9ba40cfd5a2b18c11be371399 Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 2 Dec 2014 07:02:01 +0900
4Subject: [PATCH 2/3] From debian to fix man file
5
6Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
7---
8Upstream-Status: Pending
9
10 man/procmail.man | 24 +++++++++++++++++-------
11 man/procmailrc.man | 2 +-
12 2 files changed, 18 insertions(+), 8 deletions(-)
13
14diff --git a/man/procmail.man b/man/procmail.man
15index 175043a..1274ce8 100644
16--- a/man/procmail.man
17+++ b/man/procmail.man
18@@ -44,11 +44,11 @@ at the end.
19 should be invoked automatically over the
20 .B @DOT_FORWARD@
21 file mechanism as soon as mail arrives. Alternatively, when installed by
22-a system administrator, it can be invoked from within the mailer immediately.
23-When invoked, it first sets some environment variables to default values,
24-reads the mail message from stdin until an EOF, separates the body from the
25-header, and then, if no command line arguments are present, it starts to look
26-for a file named
27+a system administrator (and in the standard Red Hat Linux configuration), it
28+can be invoked from within the mailer immediately. When invoked, it
29+first sets some environment variables to default values, reads the mail message from
30+stdin until an EOF, separates the body from the header, and then, if no command line
31+arguments are present, it starts to look for a file named
32 .BR @PROCMAILRC@ .
33 According to the processing recipes in this file,
34 the mail message that just arrived gets distributed into the right folder
35@@ -166,7 +166,8 @@ must be specified on the command line. After the rcfile, procmail will
36 accept an unlimited number of arguments.@ETCRCS_desc@
37 For some advanced usage of this option you should look in the
38 .B EXAMPLES
39-section below.@LMTPOPTdesc@.SH ARGUMENTS
40+section below.@LMTPOPTdesc@
41+.SH ARGUMENTS
42 Any arguments containing an '=' are considered to be environment variable
43 assignments, they will
44 .I all
45@@ -723,6 +724,15 @@ path.@FW_comment@
46 .fi
47 .ad
48 .PP
49+Some mailers (notably exim) do not currently accept the above syntax.
50+In such case use this instead:
51+.PP
52+.na
53+.nf
54+|/usr/bin/procmail
55+.fi
56+.ad
57+.PP
58 Procmail can also be invoked to postprocess an already filled system
59 mailbox. This can be useful if you don't want to or can't use a
60 $HOME/@DOT_FORWARD@ file (in which case the following script could
61@@ -754,7 +764,7 @@ exit 0
62 .SS "A sample small @PROCMAILRC@:"
63 .na
64 .nf
65-PATH=/bin:/usr/bin:@BINDIR@
66+PATH=/usr/local/bin:/usr/bin:/bin
67 MAILDIR=$HOME/Mail #you'd better make sure it exists
68 DEFAULT=$MAILDIR/mbox #completely optional
69 LOGFILE=$MAILDIR/from #recommended
70diff --git a/man/procmailrc.man b/man/procmailrc.man
71index 472035f..7bf08dd 100644
72--- a/man/procmailrc.man
73+++ b/man/procmailrc.man
74@@ -779,7 +779,7 @@ one trailing newline will be stripped.
75 .PP
76 Some non-optimal and non-obvious regexps set MATCH to an incorrect
77 value. The regexp can be made to work by removing one or more unneeded
78-'*', '+', or '?' operator on the left-hand side of the \e/ token.
79+\&'*', '+', or '?' operator on the left-hand side of the \e/ token.
80 .SH MISCELLANEOUS
81 If the regular expression contains `\fB@TO_key@\fP' it will be substituted by
82 .na
83--
841.8.4.2
85
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
deleted file mode 100644
index 2bebccc0b2..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
+++ /dev/null
@@ -1,129 +0,0 @@
1From 95c742242769721f963c50702e1445fb70c6a45a Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 2 Dec 2014 07:07:33 +0900
4Subject: [PATCH 3/3] From debian to modify parameters
5
6Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
7---
8Upstream-Status: Pending
9
10 Makefile | 16 ++++++++--------
11 config.h | 13 +++++++------
12 2 files changed, 15 insertions(+), 14 deletions(-)
13
14diff --git a/Makefile b/Makefile
15index 1e9568c..9e48201 100644
16--- a/Makefile
17+++ b/Makefile
18@@ -23,7 +23,7 @@ MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
19
20 # Uncomment to install compressed man pages (possibly add extra suffix
21 # to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
22-#MANCOMPRESS = compress
23+# MANCOMPRESS = compress
24
25 ############################*#
26 # Things that can be made are:
27@@ -55,7 +55,7 @@ MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
28
29 LOCKINGTEST=__defaults__
30
31-#LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
32+LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
33 # If LOCKINGTEST is defined, autoconf will NOT
34 # prompt you to enter additional directories.
35 # See INSTALL for more information about the
36@@ -65,7 +65,7 @@ LOCKINGTEST=__defaults__
37 # Only edit below this line if you *think* you know what you are doing #
38 ########################################################################
39
40-#LOCKINGTEST=100 # Uncomment (and change) if you think you know
41+LOCKINGTEST=100 # Uncomment (and change) if you think you know
42 # it better than the autoconf lockingtests.
43 # This will cause the lockingtests to be hotwired.
44 # 100 to enable fcntl()
45@@ -74,20 +74,20 @@ LOCKINGTEST=__defaults__
46 # Or them together to get the desired combination.
47
48 # Optional system libraries we search for
49-SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
50- -lgen -lsockdns -ldl
51+SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lsun \
52+ -lgen -lsockdns
53 # -lresolv # not really needed, is it?
54
55 # Informal list of directories where we look for the libraries in SEARCHLIBS
56-LIBPATHS=/lib /usr/lib /usr/local/lib
57+LIBPATHS=/lib /usr/lib
58
59 GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
60 -Wpointer-arith -Wconversion -Waggregate-return \
61 #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
62
63 # The place to put your favourite extra cc flag
64-CFLAGS0 = -O #$(GCC_WARNINGS)
65-LDFLAGS0= -s
66+CFLAGS0 = $(RPM_OPT_FLAGS) #$(GCC_WARNINGS)
67+LDFLAGS0=
68 # Read my libs :-)
69 LIBS=
70
71diff --git a/config.h b/config.h
72index c4135a9..a07453f 100644
73--- a/config.h
74+++ b/config.h
75@@ -35,7 +35,8 @@
76 */
77 /*#define DEFSPATH "PATH=/bin:/usr/bin" /* */
78 /*#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin" /* */
79-
80+#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin" /* */
81+
82 /* every environment variable appearing in PRESTENV will be set or wiped
83 * out of the environment (variables without an '=' sign will be thrown
84 * out), e.g. you could define PRESTENV as follows:
85@@ -46,13 +47,13 @@
86 */
87 #define PRESTENV {"IFS","ENV","PWD",0}
88
89-/*#define GROUP_PER_USER /* uncomment this if each
90+#define GROUP_PER_USER /* uncomment this if each
91 user has his or her own
92 group and procmail can therefore trust a $HOME/.procmailrc that
93 is group writable or contained in a group writable home directory
94 if the group involved is the user's default group. */
95
96-/*#define LMTP /* uncomment this if you
97+#define LMTP /* uncomment this if you
98 want to use procmail
99 as an LMTP (rfc2033) server, presumably for invocation by an MTA.
100 The file examples/local_procmail_lmtp.m4 contains info on how to
101@@ -79,7 +80,7 @@
102
103 /*#define NO_fcntl_LOCK /* uncomment any of these three if you */
104 /*#define NO_lockf_LOCK /* definitely do not want procmail to make */
105-/*#define NO_flock_LOCK /* use of those kernel-locking methods */
106+#define NO_flock_LOCK /* use of those kernel-locking methods */
107 /* If you set LOCKINGTEST to a binary number
108 than there's no need to set these. These #defines are only useful
109 if you want to disable particular locking styles but are unsure which
110@@ -91,14 +92,14 @@
111 restriction does not apply to the /etc/procmailrc and
112 /etc/procmailrcs files) */
113
114-/*#define NO_NFS_ATIME_HACK /* uncomment if you're definitely not using
115+#define NO_NFS_ATIME_HACK /* uncomment if you're definitely not using
116 NFS mounted filesystems and can't afford
117 procmail to sleep for 1 sec. before writing to an empty regular
118 mailbox. This lets programs correctly judge whether there is unread
119 mail present. procmail automatically suppresses this when it isn't
120 needed or under heavy load. */
121
122-/*#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
123+#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
124 the autoconfigured default
125 SENDMAIL is not suitable. This program should quack like a sendmail:
126 it should accept the -oi flag (to tell it to _not_ treat a line
127--
1281.8.4.2
129
diff --git a/meta-oe/recipes-support/procmail/procmail/gcc14.patch b/meta-oe/recipes-support/procmail/procmail/gcc14.patch
deleted file mode 100644
index 5ca56fa006..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/gcc14.patch
+++ /dev/null
@@ -1,127 +0,0 @@
1From: Santiago Vila <sanvila@debian.org>
2Subject: Fix build with gcc-14
3Bug-Debian: https://bugs.debian.org/1075398
4
5Upstream-Status: Pending
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7--- a/initmake
8+++ b/initmake
9@@ -124,7 +124,7 @@ else
10 fi
11
12 cat >_autotst.c <<HERE
13-main()
14+int main()
15 { return 0;
16 }
17 HERE
18@@ -200,7 +200,7 @@ cat >_autotst.c <<HERE
19 #include <sys/types.h>
20 #include <stdio.h>
21 #include <sys/stat.h>
22-main()
23+int main()
24 { struct stat buf;return!&buf;
25 }
26 HERE
27--- a/src/autoconf
28+++ b/src/autoconf
29@@ -414,6 +414,12 @@ cat >_autotst.c <<HERE
30 int dolock,child[NR_of_forks],timeout,fdcollect;
31 char dirlocktest[]="_locktest";
32
33+#include <stdlib.h>
34+int killchildren();
35+int fdlock(int fd);
36+int sfdlock(int fd);
37+int fdunlock();
38+
39 void stimeout()
40 { timeout=1;close(fdcollect);killchildren();
41 }
42@@ -435,7 +441,7 @@ unsigned sfork()
43 return pid;
44 }
45
46-int main(argc,argv)char*argv[];
47+int main(int argc,char*argv[])
48 { int goodlock,testlock,i,pip[2],pipw[2];time_t otimet;unsigned dtimet;
49 static char filename[]="_locktst.l0";
50 close(0);goodlock=0;testlock=FIRST_lock;signal(SIGPIPE,SIG_DFL);
51@@ -585,13 +591,13 @@ int killchildren()
52 return 0;
53 }
54
55-int sfdlock(fd)
56+int sfdlock(int fd)
57 { int i;unsigned gobble[GOBBLE>>2];
58 for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
59 return fdlock(fd);
60 }
61
62-static oldfdlock;
63+static int oldfdlock;
64 #ifdef F_SETLKW
65 static struct flock flck; /* why can't it be a local variable? */
66 #endif
67@@ -599,7 +605,7 @@ static struct flock flck; /* why can't
68 static off_t oldlockoffset;
69 #endif
70
71-int fdlock(fd)
72+int fdlock(int fd)
73 { int i;unsigned gobble[GOBBLE>>2];
74 for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
75 oldfdlock=fd;fd=0;
76@@ -993,11 +999,11 @@ int main(){int i;i=1;
77 i+=WIFEXITED(i);
78 i+=WIFSTOPPED(i);
79 i+=WEXITSTATUS(i);
80- i+=WSIGTERM(i);
81+ i+=WTERMSIG(i);
82 return i;}
83 HERE
84
85-echo 'Testing for WIFEXITED(), WIFSTOPPED(), WEXITSTATUS() & WSIGTERM()'
86+echo 'Testing for WIFEXITED(), WIFSTOPPED(), WEXITSTATUS() & WTERMSIG()'
87 if $MAKE _autotst.$O >_autotst.rrr 2>&1
88 then
89 $FGREP -v include/ <_autotst.rrr >_autotst.$O
90@@ -1029,6 +1035,8 @@ cat >_autotst.c <<HERE
91 #ifndef NO_COMSAT
92 #include "network.h"
93 #endif
94+int setrgid();
95+int setresgid();
96 int main(){char a[2];
97 endpwent();endgrent();memmove(a,"0",1);bcopy("0",a,1);strcspn(a,"0");
98 strtol("0",(char**)0,10);strchr("0",'0');strpbrk(a,"0");rename(a,"0");
99@@ -1059,7 +1067,7 @@ echo 'Testing for memmove, strchr, strpb
100 echo ' rename, setrgid, setegid, pow, opendir, mkdir, waitpid, fsync,'
101 echo ' ftruncate, strtod, strncasecmp, strerror, strlcat,'
102 echo ' memset, bzero, and _exit'
103-if $MAKE _autotst.$O >$DEVNULL 2>&1
104+if $MAKE _autotst.$O >_autotst.rrr 2>&1
105 then
106 :
107 else
108@@ -1196,7 +1204,7 @@ unsigned long dobench(strstr,iter,haysta
109 return (unsigned long)clock()-to;
110 }
111 #endif
112-int main(argc,argv)int argc;const char*argv[];
113+int main(int argc,const char*argv[])
114 { if(argc==1)
115 { char*haystack;
116 #ifdef BENCHSIZE
117--- a/src/mailfold.c
118+++ b/src/mailfold.c
119@@ -378,7 +378,7 @@ void concon(ch)const int ch; /* flip b
120 }
121 }
122
123-void readmail(rhead,tobesent)const long tobesent;
124+void readmail(int rhead,const long tobesent)
125 { char*chp,*pastend;static size_t contlengthoffset;
126 ;{ long dfilled;
127 if(rhead==2) /* already read, just examine what we have */
diff --git a/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch b/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
deleted file mode 100644
index 72fa27a834..0000000000
--- a/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From 8ac56108e5f0a72d1bec0fb4f1fa4763a2479331 Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 2 Dec 2014 06:56:14 +0900
4Subject: [PATCH] man file mailstat.1 from debian
5
6Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
7---
8Upstream-Status: Pending
9
10 debian/mailstat.1 | 40 ++++++++++++++++++++++++++++++++++++++++
11 1 file changed, 40 insertions(+)
12 create mode 100644 debian/mailstat.1
13
14diff --git a/debian/mailstat.1 b/debian/mailstat.1
15new file mode 100644
16index 0000000..f13265a
17--- /dev/null
18+++ b/debian/mailstat.1
19@@ -0,0 +1,40 @@
20+.TH MAILSTAT 1
21+.SH NAME
22+mailstat \- shows mail-arrival statistics
23+.SH SYNOPSIS
24+.B mailstat
25+[\-klmots] [logfile]
26+.SH DESCRIPTION
27+.B mailstat
28+parses a procmail-generated $LOGFILE and displays
29+a summary about the messages delivered to all folders
30+(total size, average size, nr of messages).
31+The $LOGFILE is truncated to zero length, unless the
32+.B -k
33+option is used.
34+Exit code 0 if mail arrived, 1 if no mail arrived.
35+.SH OPTIONS
36+.TP
37+.I \-k
38+keep logfile intact
39+.TP
40+.I \-l
41+long display format
42+.TP
43+.I \-m
44+merge any errors into one line
45+.TP
46+.I \-o
47+use the old logfile
48+.TP
49+.I \-t
50+terse display format
51+.TP
52+.I \-s
53+silent in case of no mail
54+.SH NOTES
55+Customise to your heart's content, this program is only provided as a
56+guideline.
57+.SH AUTHOR
58+This manual page was written by Santiago Vila <sanvila@debian.org>
59+for the Debian GNU/Linux distribution (but may be used by others).
60--
611.8.4.2
62
diff --git a/meta-oe/recipes-support/procmail/procmail/procmail-3.24-consolidated_fixes-1.patch b/meta-oe/recipes-support/procmail/procmail/procmail-3.24-consolidated_fixes-1.patch
new file mode 100644
index 0000000000..79cff4ae59
--- /dev/null
+++ b/meta-oe/recipes-support/procmail/procmail/procmail-3.24-consolidated_fixes-1.patch
@@ -0,0 +1,253 @@
1Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
2Date: 2024-06-05
3Initial Package Version: 3.24
4Upstream Status: Submitted
5Origin: Fedora
6Description: Fixes building procmail-3.24 with gcc-14. This includes
7 several C99 portability fixes.
8
9Upstream-Status: Pending
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11
12diff --git a/initmake b/initmake
13index b901add..703d651 100755
14--- a/initmake
15+++ b/initmake
16@@ -124,7 +124,7 @@ else
17 fi
18
19 cat >_autotst.c <<HERE
20-main()
21+int main()
22 { return 0;
23 }
24 HERE
25@@ -200,7 +200,7 @@ cat >_autotst.c <<HERE
26 #include <sys/types.h>
27 #include <stdio.h>
28 #include <sys/stat.h>
29-main()
30+int main()
31 { struct stat buf;return!&buf;
32 }
33 HERE
34diff --git a/src/autoconf b/src/autoconf
35index deb97c1..c3f2576 100755
36--- a/src/autoconf
37+++ b/src/autoconf
38@@ -361,6 +361,7 @@ cat >_autotst.c <<HERE
39 #include <unistd.h> /* getpid() getppid() */
40 #endif
41 #include <stdio.h>
42+#include <stdlib.h>
43 #include <time.h>
44 #include <fcntl.h>
45 #include <signal.h> /* SIGKILL */
46@@ -414,6 +415,16 @@ cat >_autotst.c <<HERE
47 int dolock,child[NR_of_forks],timeout,fdcollect;
48 char dirlocktest[]="_locktest";
49
50+int killchildren()
51+{ int i;
52+ i=NR_of_forks;
53+ do
54+ if(child[--i]>0)
55+ kill(child[i],SIGTERM),child[i]=0;
56+ while(i);
57+ return 0;
58+}
59+
60 void stimeout()
61 { timeout=1;close(fdcollect);killchildren();
62 }
63@@ -435,7 +446,79 @@ unsigned sfork()
64 return pid;
65 }
66
67-int main(argc,argv)char*argv[];
68+static int oldfdlock;
69+#ifdef F_SETLKW
70+static struct flock flck; /* why can't it be a local variable? */
71+#endif
72+#ifdef F_LOCK
73+static off_t oldlockoffset;
74+#endif
75+
76+int fdlock(int fd)
77+{ int i;unsigned gobble[GOBBLE>>2];
78+ for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
79+ oldfdlock=fd;fd=0;
80+ if(MSK_fcntl&dolock)
81+#ifdef F_SETLKW
82+ { static unsigned extra;
83+ flck.l_type=F_WRLCK;flck.l_whence=SEEK_SET;flck.l_start=tell(oldfdlock);
84+ if(!extra--)
85+ extra=MIN_locks/4,flck.l_len=2,i|=fcntl(oldfdlock,F_SETLK,&flck);
86+ flck.l_len=0;fd|=fcntl(oldfdlock,F_SETLKW,&flck);
87+ }
88+#else
89+ fd=1;
90+#endif
91+ if(MSK_lockf&dolock)
92+#ifdef F_LOCK
93+ oldlockoffset=tell(oldfdlock),fd|=lockf(oldfdlock,F_LOCK,(off_t)0);
94+#else
95+ fd=1;
96+#endif
97+ if(MSK_flock&dolock)
98+#ifdef LOCK_EX
99+ fd|=flock(oldfdlock,LOCK_EX);
100+#else
101+ fd=1;
102+#endif
103+ return fd;
104+}
105+
106+int sfdlock(int fd)
107+{ int i;unsigned gobble[GOBBLE>>2];
108+ for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
109+ return fdlock(fd);
110+}
111+
112+int fdunlock()
113+{ int i;unsigned gobble[GOBBLE];
114+ for(i=GOBBLE;i;gobble[--i]=~(unsigned)0); /* some SunOS libs mess this up */
115+ if(MSK_flock&dolock)
116+#ifdef LOCK_EX
117+ i|=flock(oldfdlock,LOCK_UN);
118+#else
119+ i=1;
120+#endif
121+ if(MSK_lockf&dolock)
122+#ifdef F_LOCK
123+ { lseek(oldfdlock,oldlockoffset,SEEK_SET);
124+ i|=lockf(oldfdlock,F_LOCK,(off_t)2);i|=lockf(oldfdlock,F_ULOCK,(off_t)0);
125+ }
126+#else
127+ i=1;
128+#endif
129+ if(MSK_fcntl&dolock)
130+#ifdef F_SETLKW
131+ flck.l_type=F_UNLCK,flck.l_len=0,i|=fcntl(oldfdlock,F_SETLK,&flck);
132+#else
133+ i=1;
134+#endif
135+ if(!i)
136+ for(i=GOBBLE;i&&gobble[--i]==~(unsigned)0;);
137+ return i;
138+}
139+
140+int main(argc,argv)int argc;char*argv[];
141 { int goodlock,testlock,i,pip[2],pipw[2];time_t otimet;unsigned dtimet;
142 static char filename[]="_locktst.l0";
143 close(0);goodlock=0;testlock=FIRST_lock;signal(SIGPIPE,SIG_DFL);
144@@ -574,88 +657,6 @@ skip_tests:
145 puts("Kernel-locking tests completed.");fprintf(stderr,"\n");
146 return EXIT_SUCCESS;
147 }
148-
149-int killchildren()
150-{ int i;
151- i=NR_of_forks;
152- do
153- if(child[--i]>0)
154- kill(child[i],SIGTERM),child[i]=0;
155- while(i);
156- return 0;
157-}
158-
159-int sfdlock(fd)
160-{ int i;unsigned gobble[GOBBLE>>2];
161- for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
162- return fdlock(fd);
163-}
164-
165-static oldfdlock;
166-#ifdef F_SETLKW
167-static struct flock flck; /* why can't it be a local variable? */
168-#endif
169-#ifdef F_LOCK
170-static off_t oldlockoffset;
171-#endif
172-
173-int fdlock(fd)
174-{ int i;unsigned gobble[GOBBLE>>2];
175- for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
176- oldfdlock=fd;fd=0;
177- if(MSK_fcntl&dolock)
178-#ifdef F_SETLKW
179- { static unsigned extra;
180- flck.l_type=F_WRLCK;flck.l_whence=SEEK_SET;flck.l_start=tell(oldfdlock);
181- if(!extra--)
182- extra=MIN_locks/4,flck.l_len=2,i|=fcntl(oldfdlock,F_SETLK,&flck);
183- flck.l_len=0;fd|=fcntl(oldfdlock,F_SETLKW,&flck);
184- }
185-#else
186- fd=1;
187-#endif
188- if(MSK_lockf&dolock)
189-#ifdef F_LOCK
190- oldlockoffset=tell(oldfdlock),fd|=lockf(oldfdlock,F_LOCK,(off_t)0);
191-#else
192- fd=1;
193-#endif
194- if(MSK_flock&dolock)
195-#ifdef LOCK_EX
196- fd|=flock(oldfdlock,LOCK_EX);
197-#else
198- fd=1;
199-#endif
200- return fd;
201-}
202-
203-int fdunlock()
204-{ int i;unsigned gobble[GOBBLE];
205- for(i=GOBBLE;i;gobble[--i]=~(unsigned)0); /* some SunOS libs mess this up */
206- if(MSK_flock&dolock)
207-#ifdef LOCK_EX
208- i|=flock(oldfdlock,LOCK_UN);
209-#else
210- i=1;
211-#endif
212- if(MSK_lockf&dolock)
213-#ifdef F_LOCK
214- { lseek(oldfdlock,oldlockoffset,SEEK_SET);
215- i|=lockf(oldfdlock,F_LOCK,(off_t)2);i|=lockf(oldfdlock,F_ULOCK,(off_t)0);
216- }
217-#else
218- i=1;
219-#endif
220- if(MSK_fcntl&dolock)
221-#ifdef F_SETLKW
222- flck.l_type=F_UNLCK,flck.l_len=0,i|=fcntl(oldfdlock,F_SETLK,&flck);
223-#else
224- i=1;
225-#endif
226- if(!i)
227- for(i=GOBBLE;i&&gobble[--i]==~(unsigned)0;);
228- return i;
229-}
230 HERE
231
232 if $MAKE _autotst >_autotst.rrr 2>&1
233@@ -1029,6 +1030,10 @@ cat >_autotst.c <<HERE
234 #ifndef NO_COMSAT
235 #include "network.h"
236 #endif
237+#include <string.h>
238+#include <unistd.h>
239+int setrgid();
240+int setresgid();
241 int main(){char a[2];
242 endpwent();endgrent();memmove(a,"0",1);bcopy("0",a,1);strcspn(a,"0");
243 strtol("0",(char**)0,10);strchr("0",'0');strpbrk(a,"0");rename(a,"0");
244@@ -1059,7 +1064,7 @@ echo 'Testing for memmove, strchr, strpbrk, strcspn, strtol, strstr,'
245 echo ' rename, setrgid, setegid, pow, opendir, mkdir, waitpid, fsync,'
246 echo ' ftruncate, strtod, strncasecmp, strerror, strlcat,'
247 echo ' memset, bzero, and _exit'
248-if $MAKE _autotst.$O >$DEVNULL 2>&1
249+if $MAKE _autotst.$O >_autotst.rrr 2>&1
250 then
251 :
252 else
253
diff --git a/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-oe/recipes-support/procmail/procmail_3.24.bb
index 47c8310eaf..cb3775ebf6 100644
--- a/meta-oe/recipes-support/procmail/procmail_3.22.bb
+++ b/meta-oe/recipes-support/procmail/procmail_3.24.bb
@@ -8,46 +8,38 @@ forward certain incoming mail automatically to someone."
8HOMEPAGE = "http://www.procmail.org/" 8HOMEPAGE = "http://www.procmail.org/"
9SECTION = "Applications/System" 9SECTION = "Applications/System"
10 10
11SRC_URI = "http://www.ring.gr.jp/archives/net/mail/${BPN}/${BP}.tar.gz \ 11SRCREV = "07e769f07102767242edf835e995db6646bba373"
12 file://from-debian-to-fix-compile-errors.patch \ 12SRC_URI = "git://github.com/BuGlessRB/procmail;protocol=https;branch=master;tag=v${PV} \
13 file://from-debian-to-modify-parameters.patch \ 13 file://procmail-3.24-consolidated_fixes-1.patch \
14 file://from-debian-to-fix-man-file.patch \ 14 "
15 file://man-file-mailstat.1-from-debian.patch \
16 file://CVE-2014-3618.patch \
17 file://CVE-2017-16844.patch \
18 file://gcc14.patch \
19 file://0001-fix-uname-declaration.patch \
20 file://0001-fix-too-many-arguments-issue.patch \
21"
22SRC_URI[sha256sum] = "087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117"
23 15
24LICENSE = "GPL-2.0-only & Artistic-1.0" 16LICENSE = "GPL-2.0-only & Artistic-1.0"
25LIC_FILES_CHKSUM = "file://COPYING;md5=a71e50e197a992c862379e576e669757 \ 17LIC_FILES_CHKSUM = "file://COPYING;md5=a71e50e197a992c862379e576e669757 \
26 file://Artistic;md5=505e00d03c3428cde21b17b2a386590e" 18 file://Artistic;md5=505e00d03c3428cde21b17b2a386590e"
27 19
28DEPENDS = "libnet" 20DEPENDS = "libnet libnsl2"
21
29inherit autotools-brokensep 22inherit autotools-brokensep
30 23
31do_configure() { 24do_configure() {
32 find examples -type f | xargs chmod 644 25 find examples -type f | xargs chmod 644
33 export CC="${BUILD_CC}" 26 export CC="${BUILD_CC} -std=gnu17 -Wno-implicit-function-declaration"
34 export LD="${BUILD_LD}" 27 export LD="${BUILD_LD}"
35 export CFLAGS="${BUILD_CFLAGS}" 28 export CFLAGS="${BUILD_CFLAGS}"
36 export AR="${BUILD_AR}" 29 export AR="${BUILD_AR}"
37 export AS="${BUILD_AS}" 30 export AS="${BUILD_AS}"
38 make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${BUILD_LDFLAGS}" autoconf.h 31 oe_runmake TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${BUILD_LDFLAGS}" LOCKINGTEST=100 autoconf.h
39} 32}
40 33
41do_compile() { 34do_compile() {
42 oe_runmake -i CFLAGS="$TARGET_CFLAGS -Wno-comments -Wno-implicit-int -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" 35 oe_runmake -i CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 LOCKINGTEST=/tmp" LDFLAGS0="${LDFLAGS}" LOCKINGTEST=100
43} 36}
44 37
45do_install() { 38do_install() {
46 install -d ${D}${bindir} 39 install -d ${D}${bindir}
47 install -d ${D}${mandir}/man1 40 install -d ${D}${mandir}/man1
48 install -d ${D}${mandir}/man5 41 install -d ${D}${mandir}/man5
49 oe_runmake -i BASENAME=${D}/usr MANDIR=${D}${mandir} install 42 oe_runmake -i BASENAME=${D}/usr MANDIR=${D}${mandir} LOCKINGTEST=100 LDFLAGS0="${LDFLAGS}" install
50 install -m 0644 debian/mailstat.1 ${D}${mandir}/man1
51} 43}
52 44
53CVE_STATUS[CVE-1999-0475] = "fixed-version: No action required. The current version (3.22) is not affected by the CVE." 45CVE_STATUS[CVE-1999-0475] = "fixed-version: No action required. The current version (3.24) is not affected by the CVE."