Moved freeing of http request structure to its owner
authoroes <oes@users.sourceforge.net>
Fri, 28 Feb 2003 12:57:44 +0000 (12:57 +0000)
committeroes <oes@users.sourceforge.net>
Fri, 28 Feb 2003 12:57:44 +0000 (12:57 +0000)
as per Dan Price's observations in Bug #694713

urlmatch.c

index 7586fc1..9b66a7f 100644 (file)
@@ -1,4 +1,4 @@
-const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10.2.2 2002/09/25 14:53:15 oes Exp $";
+const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10.2.3 2002/11/12 16:50:40 oes Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/Attic/urlmatch.c,v $
@@ -33,6 +33,9 @@ const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10.2.2 2002/09/25 14:53:15 oes
  *
  * Revisions   :
  *    $Log: urlmatch.c,v $
+ *    Revision 1.10.2.3  2002/11/12 16:50:40  oes
+ *    Fixed memory leak in parse_http_request() reported by Oliver Stoeneberg. Fixes bug #637073
+ *
  *    Revision 1.10.2.2  2002/09/25 14:53:15  oes
  *    Added basic support for OPTIONS and TRACE HTTP methods:
  *    parse_http_url now recognizes the "*" URI as well as
@@ -260,7 +263,6 @@ jb_err parse_http_url(const char * url,
         || (http->hostport == NULL))
       {
          free(buf);
-         free_http_request(http);
          return JB_ERR_MEMORY;
       }
    }
@@ -277,7 +279,6 @@ jb_err parse_http_url(const char * url,
       buf = strdup(http->hostport);
       if (buf == NULL)
       {
-         free_http_request(http);
          return JB_ERR_MEMORY;
       }
 
@@ -315,7 +316,6 @@ jb_err parse_http_url(const char * url,
 
       if (http->host == NULL)
       {
-         free_http_request(http);
          return JB_ERR_MEMORY;
       }
    }
@@ -332,7 +332,6 @@ jb_err parse_http_url(const char * url,
       http->dbuffer = strdup(http->host);
       if (NULL == http->dbuffer)
       {
-         free_http_request(http);
          return JB_ERR_MEMORY;
       }
 
@@ -351,7 +350,6 @@ jb_err parse_http_url(const char * url,
           * Error: More than SZ(vec) components in domain
           *    or: no components in domain
           */
-         free_http_request(http);
          return JB_ERR_PARSE;
       }
 
@@ -361,7 +359,6 @@ jb_err parse_http_url(const char * url,
       http->dvec = (char **)malloc(size);
       if (NULL == http->dvec)
       {
-         free_http_request(http);
          return JB_ERR_MEMORY;
       }
 
@@ -489,7 +486,6 @@ jb_err parse_http_request(const char *req,
      || (http->ver == NULL) )
    {
       free(buf);
-      free_http_request(http);
       return JB_ERR_MEMORY;
    }