summaryrefslogtreecommitdiff
path: root/mail/procmail
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>1998-05-15 23:23:45 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>1998-05-15 23:23:45 +0000
commitf921939f942e617efdbbf1d51fb9ae61d0a0943d (patch)
treedf09d9f4be6ab227a867eac63a47cf1941562abd /mail/procmail
parentMarked BROKEN until I find the reason it's core-dumping on startup. (diff)
Fix big messages realloc strategy
Notes
Notes: svn path=/head/; revision=11000
Diffstat (limited to 'mail/procmail')
-rw-r--r--mail/procmail/files/patch-ae32
1 files changed, 32 insertions, 0 deletions
diff --git a/mail/procmail/files/patch-ae b/mail/procmail/files/patch-ae
new file mode 100644
index 000000000000..21a510ef7ccb
--- /dev/null
+++ b/mail/procmail/files/patch-ae
@@ -0,0 +1,32 @@
+*** src/pipes.c.bak Mon Apr 28 04:27:47 1997
+--- src/pipes.c Sat May 16 03:22:43 1998
+***************
+*** 234,239 ****
+--- 234,240 ----
+
+ char*readdyn(bf,filled)char*bf;long*const filled;
+ { int i;long oldsize;
++ long fetched = *filled;
+ oldsize= *filled;
+ goto jumpin;
+ do
+***************
+*** 243,249 ****
+ if((size_t)*filled>=(size_t)(*filled+BLKSIZ))
+ lcking|=lck_MEMORY,nomemerr();
+ #endif
+! bf=realloc(bf,*filled+BLKSIZ); /* dynamically adjust the buffer size */
+ jumpback:;
+ }
+ while(0<(i=rread(STDIN,bf+*filled,BLKSIZ))); /* read mail */
+--- 244,253 ----
+ if((size_t)*filled>=(size_t)(*filled+BLKSIZ))
+ lcking|=lck_MEMORY,nomemerr();
+ #endif
+! if( fetched - *filled < BLKSIZ ) {
+! fetched += 4194304;
+! bf=realloc(bf,fetched); /* dynamically adjust the buffer size */
+! }
+ jumpback:;
+ }
+ while(0<(i=rread(STDIN,bf+*filled,BLKSIZ))); /* read mail */