Project

General

Profile

Actions

Bug #434

closed

mod_proxy (1.4.8) related crash

Added by Anonymous over 19 years ago. Updated over 18 years ago.

Status:
Fixed
Priority:
Normal
Category:
mod_proxy
Target version:
-
ASK QUESTIONS IN Forums:

Description

OpenBSD 3.7-stable, freebsd-kqueue event handler.


Program received signal SIGSEGV, Segmentation fault.
0x0d75210d in proxy_create_env (srv=0x3c00a000, hctx=0x3c098580)
    at mod_proxy.c:442
442             proxy_set_header(con, "X-Host", con->request.http_host->ptr);
(gdb) bt
#0  0x0d75210d in proxy_create_env (srv=0x3c00a000, hctx=0x3c098580)
    at mod_proxy.c:442
#1  0x0d752a8f in proxy_write_request (srv=0x3c00a000, hctx=0x3c098580)
    at mod_proxy.c:807
#2  0x0d752ee1 in mod_proxy_handle_subrequest (srv=0x3c00a000, con=0x3c01ca00, 
    p_d=0x3c009900) at mod_proxy.c:905
#3  0x1c013499 in plugins_call_handle_subrequest (srv=0x3c00a000, 
    con=0x3c01ca00) at plugin.c:248
#4  0x1c00700a in http_response_prepare (srv=0x3c00a000, con=0x3c01ca00)
    at response.c:563
#5  0x1c0098e7 in connection_state_machine (srv=0x3c00a000, con=0x3c01ca00)
    at connections.c:1352
#6  0x1c00a023 in network_server_handle_fdevent (s=0x3c00a000, 
    context=0x3c011500, revents=0) at network.c:51
#7  0x1c0059ad in main (argc=1, argv=0x1c009fec) at server.c:1107
(gdb) 

I see that there was some code added to what will become 1.4.9 in r889 to facilitate core dumps, so I'll be applying that patch to my system to try and collect one the next time it happens. But for now, this is what I've collected.

-- lighttpd

Actions #1

Updated by Anonymous over 19 years ago

Applied r885, and got the following:


Program received signal SIGSEGV, Segmentation fault.
0x1c010916 in buffer_is_empty (b=0x0) at buffer.c:506
506             return (b->used == 0);

Does it make sense that b should ever be NULL elsewhere? The following patch makes it not segfault in this case anymore, but I'm not sure it's appropriate.


--- src/buffer.c.orig    Sun Jan  1 15:30:24 2006
+++ src/buffer.c    Sun Jan  1 15:30:47 2006
@@ -503,7 +503,11 @@ buffer *buffer_init_string(const char *s
 }

 int buffer_is_empty(buffer *b) {
-    return (b->used == 0);
+    if (b == NULL) {
+        return (0);
+    } else {
+        return (b->used == 0);
+    }
 }

 /**

-- lighttpd

Actions #2

Updated by Anonymous over 19 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

Fixed by r901

-- lighttpd

Actions

Also available in: Atom