mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-27 02:57:22 +00:00
Fixed buffer overflow for header_buffer
SVN revision: 1347
This commit is contained in:
parent
7b2fe6c7f2
commit
679b12ad7d
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.648 2005/05/09 07:00:15 ritt
|
||||||
|
Fixed buffer overflow for header_buffer
|
||||||
|
|
||||||
Revision 1.647 2005/05/05 09:26:16 ritt
|
Revision 1.647 2005/05/05 09:26:16 ritt
|
||||||
Added error handling for invalid XML file
|
Added error handling for invalid XML file
|
||||||
|
|
||||||
@ -1216,7 +1219,7 @@ char *return_buffer;
|
|||||||
int return_buffer_size;
|
int return_buffer_size;
|
||||||
int strlen_retbuf;
|
int strlen_retbuf;
|
||||||
int keep_alive;
|
int keep_alive;
|
||||||
char header_buffer[1000];
|
char header_buffer[20000];
|
||||||
int return_length;
|
int return_length;
|
||||||
char host_name[256];
|
char host_name[256];
|
||||||
char referer[256];
|
char referer[256];
|
||||||
@ -22291,6 +22294,8 @@ void server_loop(void)
|
|||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
length = strlen(p + 4);
|
length = strlen(p + 4);
|
||||||
header_length = (int) (p - return_buffer);
|
header_length = (int) (p - return_buffer);
|
||||||
|
if (header_length+100 > sizeof(header_buffer))
|
||||||
|
header_length = sizeof(header_buffer)-100;
|
||||||
memcpy(header_buffer, return_buffer, header_length);
|
memcpy(header_buffer, return_buffer, header_length);
|
||||||
sprintf(header_buffer + header_length, "\r\nContent-Length: %d\r\n\r\n", length);
|
sprintf(header_buffer + header_length, "\r\nContent-Length: %d\r\n\r\n", length);
|
||||||
send(_sock, header_buffer, strlen(header_buffer), 0);
|
send(_sock, header_buffer, strlen(header_buffer), 0);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user