summaryrefslogtreecommitdiff
path: root/mail/popper/files/patch-ah
blob: 6933ec6e38679bb07c525074435cb6f53ff81bf8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
*** pop_msg.c.orig	Wed Jul  1 23:54:51 1998
--- pop_msg.c	Thu Jul  2 07:12:46 1998
***************
*** 43,48 ****
--- 43,49 ----
  #endif
      va_list             ap;
      register char   *   mp;
+     int                 l, len;            /*  remaining buffer length */
  #ifdef PYRAMID
      char	    *   arg1, *arg2, *arg3, *arg4, *arg5, *arg6;
  #endif
***************
*** 67,72 ****
--- 68,74 ----
  #endif
      /*  Point to the message buffer */
      mp = message;
+     len = sizeof(message);
  
      /*  Format the POP status code at the beginning of the message */
      if (stat == POP_SUCCESS)
***************
*** 75,86 ****
          (void)sprintf (mp,"%s ",POP_ERR);
  
      /*  Point past the POP status indicator in the message message */
!     mp += strlen(mp);
  
      /*  Append the message (formatted, if necessary) */
      if (format) {
  #ifdef HAVE_VPRINTF
!         vsprintf(mp,format,ap);
  #else
  # ifdef PYRAMID
  	(void)sprintf(mp,format, arg1, arg2, arg3, arg4, arg5, arg6);
--- 77,89 ----
          (void)sprintf (mp,"%s ",POP_ERR);
  
      /*  Point past the POP status indicator in the message message */
!     l = strlen(mp);
!     len -= l, mp += l;
  
      /*  Append the message (formatted, if necessary) */
      if (format) {
  #ifdef HAVE_VPRINTF
! 	vsnprintf(mp,len-3,format,ap);
  #else
  # ifdef PYRAMID
  	(void)sprintf(mp,format, arg1, arg2, arg3, arg4, arg5, arg6);