[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Muddleftpd-cvs] muddleftpd/src bufread.c newfile.c string.c str...
From: |
Beau Kuiper |
Subject: |
[Muddleftpd-cvs] muddleftpd/src bufread.c newfile.c string.c str... |
Date: |
Tue, 29 Oct 2002 04:13:31 -0500 |
CVSROOT: /cvsroot/muddleftpd
Module name: muddleftpd
Changes by: Beau Kuiper <address@hidden> 02/10/29 04:13:31
Modified files:
src : bufread.c newfile.c string.c string.h
Log message:
Actually fixed it this time.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/bufread.c.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/newfile.c.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/string.c.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/muddleftpd/muddleftpd/src/string.h.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: muddleftpd/src/bufread.c
diff -c muddleftpd/src/bufread.c:1.1 muddleftpd/src/bufread.c:1.2
*** muddleftpd/src/bufread.c:1.1 Thu Sep 26 03:55:42 2002
--- muddleftpd/src/bufread.c Tue Oct 29 04:13:31 2002
***************
*** 50,56 ****
return(TRUE);
string_cat(&(peer->inbuffer), inputbuf, stringlen);
! string_filterbadchars(&(peer->inbuffer), oldlen);
return(FALSE);
}
--- 50,56 ----
return(TRUE);
string_cat(&(peer->inbuffer), inputbuf, stringlen);
! string_filterbadchars_telnet(&(peer->inbuffer), oldlen);
return(FALSE);
}
Index: muddleftpd/src/newfile.c
diff -c muddleftpd/src/newfile.c:1.1 muddleftpd/src/newfile.c:1.2
*** muddleftpd/src/newfile.c:1.1 Thu Sep 26 03:55:42 2002
--- muddleftpd/src/newfile.c Tue Oct 29 04:13:31 2002
***************
*** 32,38 ****
if (file->eof)
return(size);
string_cat(&(file->buffer), inbuf, size);
! string_filterbadchars(&(file->buffer), oldsize);
return(STRLENGTH(file->buffer) - oldsize);
}
--- 32,38 ----
if (file->eof)
return(size);
string_cat(&(file->buffer), inbuf, size);
! string_filterbadchars_unix(&(file->buffer), oldsize);
return(STRLENGTH(file->buffer) - oldsize);
}
Index: muddleftpd/src/string.c
diff -c muddleftpd/src/string.c:1.2 muddleftpd/src/string.c:1.3
*** muddleftpd/src/string.c:1.2 Tue Oct 29 00:01:38 2002
--- muddleftpd/src/string.c Tue Oct 29 04:13:31 2002
***************
*** 74,80 ****
va_end(printfargs);
}
! void string_filterbadchars(STRING **s, int start)
{
int count, slen;
unsigned char *pos1, *pos2;
--- 74,81 ----
va_end(printfargs);
}
! /* this is for input to ftp. Make very strict. (No tabs or nofing, only /r/n)
*/
! void string_filterbadchars_telnet(STRING **s, int start)
{
int count, slen;
unsigned char *pos1, *pos2;
***************
*** 101,106 ****
--- 102,108 ----
case '\r':
/* allow specific case of \r\n only. */
if (count != (slen - 1))
+ {
if (*(pos1 + 1) == '\n')
{
// forward 2 chars
***************
*** 110,116 ****
--- 112,163 ----
pos2 += 2;
count++;
}
+ else
+ STRLENGTH(*s) -= 1;
+ }
+ else
+ STRLENGTH(*s) -= 1;
+
break;
+ default:
+ STRLENGTH(*s) -= 1;
+ break;
+ }
+ }
+ pos1++;
+ count++;
+ }
+ *pos2 = 0;
+ }
+
+ /* this is for input files. Be quite relaxed, but still remove annoying
+ chars */
+
+ void string_filterbadchars_unix(STRING **s, int start)
+ {
+ int count, slen;
+ unsigned char *pos1, *pos2;
+
+ if (start > STRLENGTH(*s))
+ return;
+
+ pos1 = pos2 = STRTOCHAR(*s) + start;
+ slen = STRLENGTH(*s);
+ count = start;
+
+ while(count < slen)
+ {
+ /* be very aggressive. Only printable charaters! */
+ if (*pos1 >= 32)
+ {
+ *pos2 = *pos1;
+ pos2++;
+ }
+ else
+ {
+ switch(*pos1)
+ {
+ case '\n':
case '\t':
*pos2 = *pos1;
pos2++;
Index: muddleftpd/src/string.h
diff -c muddleftpd/src/string.h:1.1 muddleftpd/src/string.h:1.2
*** muddleftpd/src/string.h:1.1 Thu Sep 26 03:55:42 2002
--- muddleftpd/src/string.h Tue Oct 29 04:13:31 2002
***************
*** 15,18 ****
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);
--- 15,19 ----
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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Muddleftpd-cvs] muddleftpd/src bufread.c newfile.c string.c str...,
Beau Kuiper <=