A possible subtle bug with httpd-2.4.3 on Windows (Server 2008 R2) was found

in the following source file, which was compiled using VS2010:

httpd-2.4.3/server/config.c

// line 602:
        ap_module_short_names[m->module_index] = strdup(sym_name);

// line 680:
        free(ap_module_short_names[m->module_index]);

The bug was associated with the (new) implementation of the strdup()
function: 
it calls malloc() when compiled as non-debug version, but calls
_malloc_dbg() when 
compiled for debugging. In the later case, the free() at line 680 call would
always fail 
and cause the process terminated.

The following was my quick fixing of the problem, which uses _free_dbg() to
free 
the strings memory space:

#ifdef WIN32
#ifdef _DEBUG
        _free_dbg(ap_module_short_names[m->module_index],
1/*_NORMAL_BLOCK*/); 
#else  /* _DEBUG */
        free(ap_module_short_names[m->module_index]);
#endif  /* _DEBUG */
#else
        free(ap_module_short_names[m->module_index]);
#endif  /* WIN32 */

This solution was not a clean one, though (server/config.c is on an OS
independent level). 
So please verify the issue.

Regrards,
Bing



-----Original Message-----
From: Jeff Trawick [mailto:[email protected]]
Sent: Tuesday, August 21, 2012 7:54 AM
To: [email protected]
Subject: Re: svn commit: r783 - /release/httpd/

On Mon, Aug 20, 2012 at 1:45 PM,  <[email protected]> wrote:
> Author: jim
> Date: Mon Aug 20 17:45:46 2012
> New Revision: 783
>
> Log:
> Scrap old

Uhh, once the next is on all the mirrors and the page is updated to point to
2.4.3 ;)

>
> Removed:
>     release/httpd/CHANGES_2.4.2
>     release/httpd/httpd-2.4.2-deps.tar.bz2
>     release/httpd/httpd-2.4.2-deps.tar.bz2.asc
>     release/httpd/httpd-2.4.2-deps.tar.bz2.md5
>     release/httpd/httpd-2.4.2-deps.tar.bz2.sha1
>     release/httpd/httpd-2.4.2-deps.tar.gz
>     release/httpd/httpd-2.4.2-deps.tar.gz.asc
>     release/httpd/httpd-2.4.2-deps.tar.gz.md5
>     release/httpd/httpd-2.4.2-deps.tar.gz.sha1
>     release/httpd/httpd-2.4.2.tar.bz2
>     release/httpd/httpd-2.4.2.tar.bz2.asc
>     release/httpd/httpd-2.4.2.tar.bz2.md5
>     release/httpd/httpd-2.4.2.tar.bz2.sha1
>     release/httpd/httpd-2.4.2.tar.gz
>     release/httpd/httpd-2.4.2.tar.gz.asc
>     release/httpd/httpd-2.4.2.tar.gz.md5
>     release/httpd/httpd-2.4.2.tar.gz.sha1
>


Reply via email to