[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Muddleftpd-cvs] muddleftpd ./ChangeLog ./NEWS ./configure.ac sr...
From: |
Beau Kuiper |
Subject: |
[Muddleftpd-cvs] muddleftpd ./ChangeLog ./NEWS ./configure.ac sr... |
Date: |
Sun, 02 Nov 2003 08:06:11 -0500 |
CVSROOT: /cvsroot/muddleftpd
Module name: muddleftpd
Branch:
Changes by: Beau Kuiper <address@hidden> 03/11/02 08:06:10
Modified files:
. : ChangeLog NEWS configure.ac
src : ftpd.h ftpout.c logger.c string.c string.h
utils.c
Log message:
Fixed varargs handling so PPC output isn't scrambled. Ready for 1.3.13
release.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/ChangeLog.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/NEWS.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/configure.ac.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/ftpd.h.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/ftpout.c.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/logger.c.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/string.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/string.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/utils.c.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: muddleftpd/ChangeLog
diff -c muddleftpd/ChangeLog:1.6 muddleftpd/ChangeLog:1.7
*** muddleftpd/ChangeLog:1.6 Tue Apr 15 06:04:35 2003
--- muddleftpd/ChangeLog Sun Nov 2 08:06:10 2003
***************
*** 1,3 ****
--- 1,24 ----
+ 2003-11-02 Beau Kuiper <address@hidden>
+
+ * src/ftpd.h: removed headers for string.h since they are in
+ string.h. Updated prototype for safe_vsnprintf().
+
+ * src/string.c: fixed double use of varargs in string_catvprintf().
+ This fixed muddleftpd problems on PPC and possibly other archs.
+
+ * src/string.h: updated prototype for string_catvprintf()
+
+ * src/ftpout.c: modified ftp_write to use fixed string_catvprintf()
+
+ * src/logger.c: modified debuglog() to use fixed safe_vsnprint()
+
+ * src/utils.c: fixed possible double use of varargs in safe_vsnprintf()
+ Fixed safe_snprintf() so it does not use safe_vsnprintf() to prevent
+ performance degredation due to new design.
+
+ * Configure.ac: Added a check for stdarg.h, since the replacement
+ snprintf code needs it.
+
2003-04-15 Beau Kuiper <address@hidden>
* src/main.c: mainprog(): added code to close all file descriptors.
Index: muddleftpd/NEWS
diff -c muddleftpd/NEWS:1.2 muddleftpd/NEWS:1.3
*** muddleftpd/NEWS:1.2 Tue Oct 29 00:01:38 2002
--- muddleftpd/NEWS Sun Nov 2 08:06:10 2003
***************
*** 1,3 ****
--- 1,4 ----
+
Version 1.3.13:
1) Change: Revamped build system to use new build tools.
***************
*** 5,10 ****
--- 6,13 ----
3) Bug Fix: Properly fixed bug in 1.3.12.1, so muddleftpd does not
accept /r or /n from user input unless it is the form of
a TELNET newline.
+ 4) Bug Fix: Scrambled output on PPC systems fixed. (possibly other
+ systems too)
Version 1.3.12.1:
Index: muddleftpd/configure.ac
diff -c muddleftpd/configure.ac:1.2 muddleftpd/configure.ac:1.3
*** muddleftpd/configure.ac:1.2 Sun Oct 20 07:51:26 2002
--- muddleftpd/configure.ac Sun Nov 2 08:06:10 2003
***************
*** 46,52 ****
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h sys/time.h syslog.h unistd.h sys/uio.h)
! AC_CHECK_HEADERS(crypt.h dlfcn.h sys/capability.h netinet/in_systm.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_TIME
--- 46,52 ----
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h sys/time.h syslog.h unistd.h sys/uio.h)
! AC_CHECK_HEADERS(crypt.h dlfcn.h sys/capability.h netinet/in_systm.h stdarg.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_TIME
Index: muddleftpd/src/ftpd.h
diff -c muddleftpd/src/ftpd.h:1.1 muddleftpd/src/ftpd.h:1.2
*** muddleftpd/src/ftpd.h:1.1 Thu Sep 26 03:55:42 2002
--- muddleftpd/src/ftpd.h Sun Nov 2 08:06:10 2003
***************
*** 473,488 ****
int select_do(SELECTER *sel, int *signum, int timeout);
void select_shutdown(SELECTER *sel);
- /* string.h */
-
- STRING *string_new(void);
- void string_cat(STRING **s, char *catstr, int len);
- void string_clear(STRING **s);
- void string_dropfront(STRING **s, int nchars);
- void string_catvprintf(STRING **s, char *format, va_list ap);
- void string_catprintf(STRING **s, char *format, ...);
- void string_filterbadchars(STRING **s, int start);
-
/* ftpsite.h */
int ftp_site(FTPSTATE *peer, char *cmd);
--- 473,478 ----
***************
*** 539,545 ****
void strtrimspace(char *string);
int strchrcount(char *string, char tok);
! char *safe_vsnprintf(char *format, va_list ap);
char *safe_snprintf(char *format, ...);
char *getcwd2(void);
void pathname_simplify(char *pathname);
--- 529,535 ----
void strtrimspace(char *string);
int strchrcount(char *string, char tok);
! char *safe_vsnprintf(int size, char *format, va_list ap);
char *safe_snprintf(char *format, ...);
char *getcwd2(void);
void pathname_simplify(char *pathname);
Index: muddleftpd/src/ftpout.c
diff -c muddleftpd/src/ftpout.c:1.1 muddleftpd/src/ftpout.c:1.2
*** muddleftpd/src/ftpout.c:1.1 Thu Sep 26 03:55:42 2002
--- muddleftpd/src/ftpout.c Sun Nov 2 08:06:10 2003
***************
*** 39,47 ****
number[3] = ' ';
string_cat(&(peer->outbuffer), number, 4);
}
!
va_start(printfargs, fmt);
! string_catvprintf(&(peer->outbuffer), fmt, printfargs);
va_end(printfargs);
if (!bare)
--- 39,51 ----
number[3] = ' ';
string_cat(&(peer->outbuffer), number, 4);
}
!
va_start(printfargs, fmt);
! outlen = vsnprintf(NULL, 0, fmt, printfargs);
! va_end(printfargs);
!
! va_start(printfargs, fmt);
! string_catvprintf(&(peer->outbuffer), outlen, fmt, printfargs);
va_end(printfargs);
if (!bare)
Index: muddleftpd/src/logger.c
diff -c muddleftpd/src/logger.c:1.4 muddleftpd/src/logger.c:1.5
*** muddleftpd/src/logger.c:1.4 Tue Oct 29 00:01:38 2002
--- muddleftpd/src/logger.c Sun Nov 2 08:06:10 2003
***************
*** 101,109 ****
#ifdef DEBUG
char *logmsg;
va_list ap;
va_start(ap, format);
! logmsg = safe_vsnprintf(format, ap);
va_end(ap);
log_addentry(MYLOG_DEBUG, NULL, logmsg);
--- 101,114 ----
#ifdef DEBUG
char *logmsg;
va_list ap;
+ int len;
+
+ va_start(ap, format);
+ len = vsnprintf(NULL, 0, format, ap);
+ va_end(ap);
va_start(ap, format);
! logmsg = safe_vsnprintf(len, format, ap);
va_end(ap);
log_addentry(MYLOG_DEBUG, NULL, logmsg);
Index: muddleftpd/src/string.c
diff -c muddleftpd/src/string.c:1.3 muddleftpd/src/string.c:1.4
*** muddleftpd/src/string.c:1.3 Tue Oct 29 04:13:31 2002
--- muddleftpd/src/string.c Sun Nov 2 08:06:10 2003
***************
*** 51,62 ****
}
}
! void string_catvprintf(STRING **s, char *format, va_list ap)
{
- int len;
-
- len = vsnprintf(NULL, 0, format, ap);
-
if (STRLENGTH(*s) + len >= MINLEN)
reallocwrapper(len + STRCURSIZE(*s), (void *)s);
--- 51,58 ----
}
}
! void string_catvprintf(STRING **s, int len, char *format, va_list ap)
{
if (STRLENGTH(*s) + len >= MINLEN)
reallocwrapper(len + STRCURSIZE(*s), (void *)s);
***************
*** 68,76 ****
void string_catprintf(STRING **s, char *format, ...)
{
va_list printfargs;
va_start(printfargs, format);
! string_catvprintf(s, format, printfargs);
va_end(printfargs);
}
--- 64,77 ----
void string_catprintf(STRING **s, char *format, ...)
{
va_list printfargs;
+ int len;
+
+ va_start(printfargs, format);
+ len = vsnprintf(NULL, 0, format, printfargs);
+ va_end(printfargs);
va_start(printfargs, format);
! string_catvprintf(s, len, format, printfargs);
va_end(printfargs);
}
Index: muddleftpd/src/string.h
diff -c muddleftpd/src/string.h:1.2 muddleftpd/src/string.h:1.3
*** muddleftpd/src/string.h:1.2 Tue Oct 29 04:13:31 2002
--- muddleftpd/src/string.h Sun Nov 2 08:06:10 2003
***************
*** 13,19 ****
void string_cat(STRING **s, char *catstr, int len);
void string_clear(STRING **s);
void string_dropfront(STRING **s, int nchars);
! void string_catvprintf(STRING **s, char *format, va_list ap);
void string_catprintf(STRING **s, char *format, ...);
void string_filterbadchars_telnet(STRING **s, int start);
void string_filterbadchars_unix(STRING **s, int start);
--- 13,19 ----
void string_cat(STRING **s, char *catstr, int len);
void string_clear(STRING **s);
void string_dropfront(STRING **s, int nchars);
! void string_catvprintf(STRING **s, int len, char *format, va_list ap);
void string_catprintf(STRING **s, char *format, ...);
void string_filterbadchars_telnet(STRING **s, int start);
void string_filterbadchars_unix(STRING **s, int start);
Index: muddleftpd/src/utils.c
diff -c muddleftpd/src/utils.c:1.2 muddleftpd/src/utils.c:1.3
*** muddleftpd/src/utils.c:1.2 Tue Apr 15 06:04:35 2003
--- muddleftpd/src/utils.c Sun Nov 2 08:06:10 2003
***************
*** 183,213 ****
return(ret);
}
! char *safe_vsnprintf(char *format, va_list ap)
{
! int size = BUFFSMALL;
! char *buffer = mallocwrapper(size);
int result;
! result = vsnprintf(buffer, size, format, ap);
! if (result >= size)
! {
! reallocwrapper(result+1, (void *)&buffer);
! result = vsnprintf(buffer, result+1, format, ap);
! }
!
return(buffer);
}
char *safe_snprintf(char *format, ...)
{
va_list printfargs;
! char *buf;
!
va_start(printfargs, format);
! buf = safe_vsnprintf(format, printfargs);
va_end(printfargs);
return(buf);
}
--- 183,215 ----
return(ret);
}
! char *safe_vsnprintf(int size, char *format, va_list ap)
{
! char *buffer = mallocwrapper(size+1);
int result;
! result = vsnprintf(buffer, size+1, format, ap);
return(buffer);
}
char *safe_snprintf(char *format, ...)
{
va_list printfargs;
! int size = BUFFSMALL;
! char *buf = mallocwrapper(size);
! int result;
!
va_start(printfargs, format);
! result = vsnprintf(buf, size, format, printfargs);
va_end(printfargs);
+ if (result >= size)
+ {
+ reallocwrapper(result+1, (void *)&buf);
+ va_start(printfargs, format);
+ result = vsnprintf(buf, result+1, format, printfargs);
+ va_end(printfargs);
+ }
return(buf);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Muddleftpd-cvs] muddleftpd ./ChangeLog ./NEWS ./configure.ac sr...,
Beau Kuiper <=