Re: [vchkpw] patch illustrating bug in tcprules_open.

2002-10-01 Thread Ken Jones

I've been looking for this one for a long time :)
Nice one. It will be in 5.3.11 version.

Ken Jones

On Saturday 28 September 2002 12:24 pm, John Fessenden wrote:
 vpopmail-folk.

 If this is the wrong forum to post these things
 please let me know the appropriate forum

 in vpopmail.c: update_rules()
 there is an attempt to delete the tcprules temporary file by unlinking
 'relay_template'  which was set in tcprules_open

 however relay_template is only the extension added onto TCP_FILE
 and not the actual tempfile passed to tcprules program.

 this seems to be the case in both 5.2.1 and 5.3.8

 the following patch should fix that, or at the very least illustrate the
 problem.  I am not the worlds best c coder, so use the patch at your
 discretion.

 --- vpopmail.c.orig Sat May 18 06:25:49 2002
 +++ vpopmail.c  Sat Sep 28 10:04:07 2002
  -2167,7 +2167,8  long unsigned tcprules_open()
 memset(bin0,0,BUFF_SIZE);
 memset(bin1,0,BUFF_SIZE);
 memset(bin2,0,BUFF_SIZE);
 -   snprintf(relay_template, 300, tmp.%ld, (long unsigned)getpid());
 +   snprintf(relay_template, 300, %s.tmp.%ld,
 +  TCP_FILE, (long unsigned)getpid());

 if (pipe(pim) == -1)  { return(-1);}

  -2181,8 +2182,7  long unsigned tcprules_open()
 strncpy(bin0, TCPRULES_PROG, BUFF_SIZE);
 strncpy( bin1, TCP_FILE, BUFF_SIZE);
 strncat( bin1, .cdb, BUFF_SIZE);
 -   strncpy( bin2, TCP_FILE, BUFF_SIZE);
 -   strncat( bin2, relay_template, BUFF_SIZE);
 +   strncpy( bin2, relay_template, BUFF_SIZE);
 binqqargs[0] = bin0;
 binqqargs[1] = bin1;
 binqqargs[2] = bin2;



 --fess
 ps. please include me in any replys, as i am not subscribed to  this
 mailing list.




[vchkpw] patch illustrating bug in tcprules_open.

2002-09-28 Thread John Fessenden



vpopmail-folk.

If this is the wrong forum to post these things 
please let me know the appropriate forum

in vpopmail.c: update_rules()
there is an attempt to delete the tcprules temporary file by unlinking 
'relay_template'  which was set in tcprules_open

however relay_template is only the extension added onto TCP_FILE
and not the actual tempfile passed to tcprules program. 

this seems to be the case in both 5.2.1 and 5.3.8

the following patch should fix that, or at the very least illustrate the
problem.  I am not the worlds best c coder, so use the patch at your
discretion. 

--- vpopmail.c.orig Sat May 18 06:25:49 2002
+++ vpopmail.c  Sat Sep 28 10:04:07 2002
 -2167,7 +2167,8  long unsigned tcprules_open()
memset(bin0,0,BUFF_SIZE);
memset(bin1,0,BUFF_SIZE);
memset(bin2,0,BUFF_SIZE);
-   snprintf(relay_template, 300, tmp.%ld, (long unsigned)getpid());
+   snprintf(relay_template, 300, %s.tmp.%ld,
+  TCP_FILE, (long unsigned)getpid());
 
if (pipe(pim) == -1)  { return(-1);}
 
 -2181,8 +2182,7  long unsigned tcprules_open()
strncpy(bin0, TCPRULES_PROG, BUFF_SIZE);
strncpy( bin1, TCP_FILE, BUFF_SIZE);
strncat( bin1, .cdb, BUFF_SIZE);
-   strncpy( bin2, TCP_FILE, BUFF_SIZE);
-   strncat( bin2, relay_template, BUFF_SIZE);
+   strncpy( bin2, relay_template, BUFF_SIZE);
binqqargs[0] = bin0;
binqqargs[1] = bin1;
binqqargs[2] = bin2;



--fess
ps. please include me in any replys, as i am not subscribed to  this
mailing list.