httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Randy Terbush <ra...@zyzzyva.com>
Subject Re: [PATCH] fd leaks
Date Sun, 09 Feb 1997 16:44:34 GMT

I agree. This occured to me some time after submitting that patch.
In fact, I see some other areas where we should probably be doing
a pfclose. ??

> I would prefer to close the files rather than leaving
> them around until the cleanup.  This matches the other uses of pfopen.
> A new patch is below.
> 
> .....Roy
> 
> Index: http_core.c
> ===================================================================
> RCS file: /export/home/cvs/apache/src/http_core.c,v
> retrieving revision 1.64
> diff -c -r1.64 http_core.c
> *** http_core.c	1997/02/03 02:42:57	1.64
> --- http_core.c	1997/02/09 09:50:29
> ***************
> *** 1288,1296 ****
>       
>   #ifdef __EMX__
>       /* Need binary mode for OS/2 */
> !     f = fopen (r->filename, "rb");
>   #else
> !     f = fopen (r->filename, "r");
>   #endif
>   
>       if (f == NULL) {
> --- 1288,1296 ----
>       
>   #ifdef __EMX__
>       /* Need binary mode for OS/2 */
> !     f = pfopen (r->pool, r->filename, "rb");
>   #else
> !     f = pfopen (r->pool, r->filename, "r");
>   #endif
>   
>       if (f == NULL) {
> ***************
> *** 1319,1325 ****
>   	}
>       }
>   
> !     fclose(f);
>       return OK;
>   }
>   
> --- 1319,1325 ----
>   	}
>       }
>   
> !     pfclose(r->pool, f);
>       return OK;
>   }
>   
> Index: mod_asis.c
> ===================================================================
> RCS file: /export/home/cvs/apache/src/mod_asis.c,v
> retrieving revision 1.10
> diff -c -r1.10 mod_asis.c
> *** mod_asis.c	1997/01/01 18:10:26	1.10
> --- mod_asis.c	1997/02/09 09:50:29
> ***************
> *** 69,75 ****
>   	return NOT_FOUND;
>       }
>   	
> !     f = fopen (r->filename, "r");
>   
>       if (f == NULL) {
>           log_reason("file permissions deny server access", r->filename, r);
> --- 69,75 ----
>   	return NOT_FOUND;
>       }
>   	
> !     f = pfopen (r->pool, r->filename, "r");
>   
>       if (f == NULL) {
>           log_reason("file permissions deny server access", r->filename, r);
> ***************
> *** 82,87 ****
> --- 82,89 ----
>       if (location && location[0] == '/' && 
>           ((r->status == HTTP_OK) || is_HTTP_REDIRECT(r->status))) {
>   
> +         pfclose(r->pool, f);
> + 
>           /* Internal redirect -- fake-up a pseudo-request */
>           r->status = HTTP_OK;
>   
> ***************
> *** 98,104 ****
>       soft_timeout ("send", r);
>       send_http_header (r);
>       if (!r->header_only) send_fd (f, r);
> !     fclose (f);
>       return OK;
>   }
>   
> --- 100,107 ----
>       soft_timeout ("send", r);
>       send_http_header (r);
>       if (!r->header_only) send_fd (f, r);
> ! 
> !     pfclose(r->pool, f);
>       return OK;
>   }
>   




Mime
View raw message