add_new_errorpage(): fix segfault accessing global config
another fallout of the config refactoring finished by
2e02dce0c3
.
apparently no one using the ErrorFile directive used git master
during the last months, as there have been no reports about this issue.
This commit is contained in:
parent
df9074db6e
commit
4847d8cdb3
@ -815,7 +815,7 @@ static HANDLE_FUNC (handle_errorfile)
|
||||
unsigned long int err = get_long_arg (line, &match[2]);
|
||||
char *page = get_string_arg (line, &match[4]);
|
||||
|
||||
add_new_errorpage (page, err);
|
||||
add_new_errorpage (conf, page, err);
|
||||
safefree (page);
|
||||
return 0;
|
||||
}
|
||||
|
@ -37,17 +37,18 @@
|
||||
#define ERRORNUM_BUFSIZE 8 /* this is more than required */
|
||||
#define ERRPAGES_BUCKETCOUNT 16
|
||||
|
||||
int add_new_errorpage (char *filepath, unsigned int errornum)
|
||||
int add_new_errorpage (struct config_s *conf, char *filepath,
|
||||
unsigned int errornum)
|
||||
{
|
||||
char errornbuf[ERRORNUM_BUFSIZE];
|
||||
|
||||
config->errorpages = hashmap_create (ERRPAGES_BUCKETCOUNT);
|
||||
if (!config->errorpages)
|
||||
conf->errorpages = hashmap_create (ERRPAGES_BUCKETCOUNT);
|
||||
if (!conf->errorpages)
|
||||
return (-1);
|
||||
|
||||
snprintf (errornbuf, ERRORNUM_BUFSIZE, "%u", errornum);
|
||||
|
||||
if (hashmap_insert (config->errorpages, errornbuf,
|
||||
if (hashmap_insert (conf->errorpages, errornbuf,
|
||||
filepath, strlen (filepath) + 1) < 0)
|
||||
return (-1);
|
||||
|
||||
|
@ -23,8 +23,9 @@
|
||||
|
||||
/* Forward declaration */
|
||||
struct conn_s;
|
||||
struct config_s;
|
||||
|
||||
extern int add_new_errorpage (char *filepath, unsigned int errornum);
|
||||
extern int add_new_errorpage (struct config_s *, char *filepath, unsigned int errornum);
|
||||
extern int send_http_error_message (struct conn_s *connptr);
|
||||
extern int indicate_http_error (struct conn_s *connptr, int number,
|
||||
const char *message, ...);
|
||||
|
Loading…
Reference in New Issue
Block a user