Need to check the return value of hashmap_first() since it could be

negative.
This commit is contained in:
Robert James Kaes 2002-04-26 16:43:20 +00:00
parent 6992c74bba
commit 0e7182533c
2 changed files with 30 additions and 22 deletions

View File

@ -1,3 +1,9 @@
2002-04-26 Robert James Kaes <rjkaes@flarenet.com>
* src/reqs.c (process_client_headers):
(process_server_headers): Test the return value of hashmap_first()
since the hashmap could be empty (returning a -1 via hashmap_first.)
2002-04-25 Robert James Kaes <rjkaes@flarenet.com>
* src/reqs.c (remove_connection_headers): Handle both the

View File

@ -1,4 +1,4 @@
/* $Id: reqs.c,v 1.67 2002-04-25 19:20:56 rjkaes Exp $
/* $Id: reqs.c,v 1.68 2002-04-26 16:43:20 rjkaes Exp $
*
* This is where all the work in tinyproxy is actually done. Incoming
* connections have a new thread created for them. The thread then
@ -769,9 +769,9 @@ process_client_headers(struct conn_s *connptr)
/*
* Output all the remaining headers to the remote machine.
*/
for (iter = hashmap_first(hashofheaders);
!hashmap_is_end(hashofheaders, iter);
++iter) {
iter = hashmap_first(hashofheaders);
if (iter >= 0) {
for ( ; !hashmap_is_end(hashofheaders, iter); ++iter) {
hashmap_return_entry(hashofheaders,
iter,
&data,
@ -783,6 +783,7 @@ process_client_headers(struct conn_s *connptr)
data, header);
}
}
}
/* Free the hashofheaders since it's no longer needed */
hashmap_delete(hashofheaders);
@ -879,9 +880,9 @@ process_server_headers(struct conn_s *connptr)
/*
* Okay, output all the remaining headers to the client.
*/
for (iter = hashmap_first(hashofheaders);
!hashmap_is_end(hashofheaders, iter);
++iter) {
iter = hashmap_first(hashofheaders);
if (iter >= 0) {
for ( ; !hashmap_is_end(hashofheaders, iter); ++iter) {
hashmap_return_entry(hashofheaders,
iter,
&data,
@ -891,6 +892,7 @@ process_server_headers(struct conn_s *connptr)
"%s: %s\r\n",
data, header);
}
}
hashmap_delete(hashofheaders);
/* Write the final blank line to signify the end of the headers */