You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Rainer Scherg RTC <Ra...@rexroth.de> on 1998/02/03 15:10:00 UTC

Re: mod_proxy/1326: HTTPS - Cannot Connect! (PR#1024, PR#1105)

The following reply was made to PR mod_proxy/1326; it has been noted by GNATS.

From: Rainer.Scherg@rexroth.de (Rainer Scherg RTC)
To: apbugs@hyperreal.org, marcs@znep.com
Cc: Lars.Eilebrecht@unix-ag.org
Subject: Re: mod_proxy/1326: HTTPS - Cannot Connect! (PR#1024, PR#1105)
Date: Tue, 3 Feb 1998 15:03:54 +0100

 Hi - Bugfix for PR1326 & PR1573 (I hope ...)
 
 -------- diff for apache 1.3b3 -------------
 diff proxy_util.c.org proxy_util.c
 988a989,991
 >     if (host == NULL)   /* oops! */
 >       return 0;
 >
 1137,1138c1140,1144
 <     int h2_len = strlen(host2);
 <     int h1_len = strlen(host);
 ---
 >     int h2_len;
 >     int h1_len;
 >
 >     if (host == NULL || host2 == NULL)
 >        return 0; /* oops! */
 1139a1146,1148
 >     h2_len = strlen(host2);
 >     h1_len = strlen(host);
 >                         
 ------------ end ---------------
 
 Reason for SIGSEGV and core dump:
 
   "hosts" variable in proxy module was not checked for NULL
   in proxy_match_ipaddr and proxy_match_hostname().
 
 These functions were called from "proxy_handler()":
 ----------- begin ---------
 [...]
         int ii;
         struct dirconn_entry *list = (struct dirconn_entry *) conf->dirconn-
 >elts;
 
 /*        if (*++p == '/' && *++p == '/')   */
 
         for (direct_connect = ii = 0; ii < conf->dirconn->nelts && 
 !direct_connect; ii++) {
             direct_connect = list[ii].matcher(&list[ii], r);
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   ----------
             aplog_error(APLOG_MARK, APLOG_DEBUG, r->server,
                         "URI and NoProxy: %s: %s", r->uri, list[ii].name);
         }
 #[...]
 ------------ end ------------
 
 
 ... hope it helps!
 
 cu -- Rainer