--- tinyproxy-1.4.3.orig/src/reqs.c     Wed Nov 21 14:19:46 2001
+++ tinyproxy-1.4.3/src/reqs.c  Fri May 17 12:29:25 2002
@@ -118,8 +118,10 @@
        safefree(request->method);
        safefree(request->protocol);
 
-       safefree(request->host);
-       safefree(request->path);
+       if (request->host)
+               safefree(request->host);
+       if (request->path)
+               safefree(request->path);
 
        safefree(request);
 }
@@ -132,12 +134,8 @@
        request->host = safemalloc(strlen(url) + 1);
        request->path = safemalloc(strlen(url) + 1);
 
-       if (!request->host || !request->path) {
-               safefree(request->host);
-               safefree(request->path);
-
-               return -1;
-       }
+       if (!request->host || !request->path)
+               goto COMMON_EXIT;
 
        if (sscanf(url, "http://%[^:/]:%d%s", request->host, &request->port, request->path) == 3)
                ;
@@ -151,13 +149,18 @@
        } else {
                log_message(LOG_ERR, "extract_http_url: Can't parse URL.");
 
-               safefree(request->host);
-               safefree(request->path);
-               
-               return -1;
+               goto COMMON_EXIT;
        }
 
        return 0;
+
+  COMMON_EXIT:
+       if (request->host)
+               safefree(request->host);
+       if (request->path)
+               safefree(request->path);
+
+       return -1;
 }
 
 /*
