Skip to content

Commit 0066a67

Browse files
author
Marc Stern
committed
added more NULL checks at run-time
1 parent 22a6829 commit 0066a67

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

apache2/apache2_config.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2781,6 +2781,10 @@ static const char *cmd_rule_remove_by_tag(cmd_parms *cmd, void *_dcfg,
27812781
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_rule_remove_by_tag: _dcfg is NULL");
27822782
return NULL;
27832783
}
2784+
if (p1 == NULL) {
2785+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_rule_remove_by_tag: p1 is NULL");
2786+
return NULL;
2787+
}
27842788
directory_config *dcfg = (directory_config *)_dcfg;
27852789
rule_exception *re = apr_pcalloc(cmd->pool, sizeof(rule_exception));
27862790

@@ -3165,6 +3169,10 @@ static const char *cmd_hash_key(cmd_parms *cmd, void *_dcfg, const char *_p1, co
31653169
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_hash_key: _dcfg is NULL");
31663170
return NULL;
31673171
}
3172+
if (_p1 == NULL) {
3173+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_hash_key: _p1 is NULL");
3174+
return NULL;
3175+
}
31683176
directory_config *dcfg = (directory_config *)_dcfg;
31693177
char *p1 = NULL;
31703178

@@ -3211,6 +3219,10 @@ static const char *cmd_hash_method_pm(cmd_parms *cmd, void *_dcfg,
32113219
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_hash_method_pm: _dcfg is NULL");
32123220
return NULL;
32133221
}
3222+
if (p1 == NULL) {
3223+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_hash_method_pm: p1 is NULL");
3224+
return NULL;
3225+
}
32143226
directory_config *dcfg = (directory_config *)_dcfg;
32153227
rule_exception *re = apr_pcalloc(cmd->pool, sizeof(hash_method));
32163228
const char *_p2 = apr_pstrdup(cmd->pool, p2);
@@ -3383,6 +3395,10 @@ static const char *cmd_httpBl_key(cmd_parms *cmd, void *_dcfg, const char *p1)
33833395
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_httpBl_key: _dcfg is NULL");
33843396
return NULL;
33853397
}
3398+
if (p1 == NULL) {
3399+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_httpBl_key: p1 is NULL");
3400+
return NULL;
3401+
}
33863402
directory_config *dcfg = (directory_config *)_dcfg;
33873403

33883404
dcfg->httpBlkey = p1;
@@ -3397,6 +3413,11 @@ static const char *cmd_pcre_match_limit(cmd_parms *cmd,
33973413
{
33983414
assert(cmd != NULL);
33993415
assert(p1 != NULL);
3416+
// Normally useless code, left to be safe for the moment
3417+
if (p1 == NULL) {
3418+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_pcre_match_limit: p1 is NULL");
3419+
return NULL;
3420+
}
34003421
long val;
34013422

34023423
if (cmd->server->is_virtual) {
@@ -3418,6 +3439,11 @@ static const char *cmd_pcre_match_limit_recursion(cmd_parms *cmd,
34183439
{
34193440
assert(cmd != NULL);
34203441
assert(p1 != NULL);
3442+
// Normally useless code, left to be safe for the moment
3443+
if (p1 == NULL) {
3444+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_pcre_match_limit_recursion: p1 is NULL");
3445+
return NULL;
3446+
}
34213447
long val;
34223448

34233449
if (cmd->server->is_virtual) {
@@ -3442,6 +3468,16 @@ static const char *cmd_geo_lookup_db(cmd_parms *cmd, void *_dcfg,
34423468
{
34433469
assert(cmd != NULL);
34443470
assert(p1 != NULL);
3471+
assert(_dcfg != NULL);
3472+
// Normally useless code, left to be safe for the moment
3473+
if (_dcfg == NULL) {
3474+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_geo_lookup_db: _dcfg is NULL");
3475+
return NULL;
3476+
}
3477+
if (p1 == NULL) {
3478+
ap_log_perror(APLOG_MARK, APLOG_EMERG, 0, cmd->pool, NULL, "cmd_geo_lookup_db: p1 is NULL");
3479+
return NULL;
3480+
}
34453481
const char *filename = resolve_relative_path(cmd->pool, cmd->directive->filename, p1);
34463482
char *error_msg;
34473483
directory_config *dcfg = (directory_config *)_dcfg;

apache2/msc_geo.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
* directly using the email address security@modsecurity.org.
1313
*/
1414

15+
#include <assert.h>
1516
#include "msc_geo.h"
1617

1718

@@ -244,6 +245,7 @@ static int field_length(const char *field, int maxlen)
244245
*/
245246
int geo_init(directory_config *dcfg, const char *dbfn, char **error_msg)
246247
{
248+
assert(dcfg != NULL);
247249
*error_msg = NULL;
248250

249251
if ((dcfg->geo == NULL) || (dcfg->geo == NOT_SET_P)) {

0 commit comments

Comments
 (0)