subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Shahaf <...@daniel.shahaf.name>
Subject Re: svn commit: r1232085 - /subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c
Date Mon, 16 Jan 2012 20:31:37 GMT
Specifically, I saw mentions of segfaults in backscroll, but I don't
think this commit prevents any segfaults.. (both setlocale() and ap_log_error()
would handle a NULL argument here)

On Mon, Jan 16, 2012, at 22:25, Daniel Shahaf wrote:
> Thanks for the fix.  I saw some discussion on IRC -- are there
> outstanding problems not addressed by the below commit?
> 
> On Mon, Jan 16, 2012, at 18:08, neels@apache.org wrote:
> > Author: neels
> > Date: Mon Jan 16 18:08:13 2012
> > New Revision: 1232085
> > 
> > URL: http://svn.apache.org/viewvc?rev=1232085&view=rev
> > Log:
> > * contrib/server-side/mod_setlocale/mod_setlocale.c
> >   (setlocale_post_config): Disallow a set_ctype of NULL, use "" instead.
> > Found by: philip
> > 
> > Modified:
> >     subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c
> > 
> > Modified: subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c
> > URL: http://svn.apache.org/viewvc/subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c?rev=1232085&r1=1232084&r2=1232085&view=diff
> > ==============================================================================
> > --- subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c (original)
> > +++ subversion/trunk/contrib/server-side/mod_setlocale/mod_setlocale.c Mon Jan 16
18:08:13 2012
> > @@ -86,6 +86,16 @@ setlocale_post_config(apr_pool_t *pconf,
> >        return HTTP_INTERNAL_SERVER_ERROR;
> >      }
> >  
> > +  /* If the user omitted a configuration directive, then set_ctype will be
> > +   * NULL.  Below condition sets it to "" instead, which loads the default as
> > +   * determined by the environment.  httpd's env is typically set by
> > +   * /etc/apache2/envvars, where LANG defaults to 'C', but it can be set to
> > +   * the system default there by sourcing the system's config file (e.g. '.
> > +   * /etc/default/locale'). Then, it suffices to just load this module to
> > +   * obtain the system's default locale. */
> > +  if (cfg->set_ctype == NULL)
> > +    cfg->set_ctype = "";
> > +
> >    cfg->old_ctype = setlocale(LC_CTYPE, cfg->set_ctype);
> >    if (cfg->old_ctype)
> >      {
> > 
> > 
> > 
> 

Mime
View raw message