mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-29 19:24:29 +03:00
Many null pointer checks
This commit is contained in:
@@ -179,12 +179,13 @@ apr_status_t input_filter(ap_filter_t *f, apr_bucket_brigade *bb_out,
|
||||
* Reads request body from a client.
|
||||
*/
|
||||
apr_status_t read_request_body(modsec_rec *msr, char **error_msg) {
|
||||
assert(msr != NULL);
|
||||
assert( error_msg!= NULL);
|
||||
request_rec *r = msr->r;
|
||||
unsigned int finished_reading;
|
||||
apr_bucket_brigade *bb_in;
|
||||
apr_bucket *bucket;
|
||||
|
||||
if (error_msg == NULL) return -1;
|
||||
*error_msg = NULL;
|
||||
|
||||
if (msr->reqbody_should_exist != 1) {
|
||||
@@ -368,6 +369,8 @@ apr_status_t read_request_body(modsec_rec *msr, char **error_msg) {
|
||||
* run or not.
|
||||
*/
|
||||
static int output_filter_should_run(modsec_rec *msr, request_rec *r) {
|
||||
assert(msr != NULL);
|
||||
assert(r != NULL);
|
||||
char *content_type = NULL;
|
||||
|
||||
/* Check configuration. */
|
||||
@@ -429,10 +432,13 @@ static int output_filter_should_run(modsec_rec *msr, request_rec *r) {
|
||||
static apr_status_t output_filter_init(modsec_rec *msr, ap_filter_t *f,
|
||||
apr_bucket_brigade *bb_in)
|
||||
{
|
||||
assert(msr != NULL);
|
||||
assert(f != NULL);
|
||||
request_rec *r = f->r;
|
||||
const char *s_content_length = NULL;
|
||||
apr_status_t rc;
|
||||
|
||||
assert(msr != NULL);
|
||||
msr->of_brigade = apr_brigade_create(msr->mp, f->c->bucket_alloc);
|
||||
if (msr->of_brigade == NULL) {
|
||||
msr_log(msr, 1, "Output filter: Failed to create brigade.");
|
||||
@@ -496,6 +502,8 @@ static apr_status_t output_filter_init(modsec_rec *msr, ap_filter_t *f,
|
||||
* and to the client.
|
||||
*/
|
||||
static apr_status_t send_of_brigade(modsec_rec *msr, ap_filter_t *f) {
|
||||
assert(msr != NULL);
|
||||
assert(f != NULL);
|
||||
apr_status_t rc;
|
||||
|
||||
rc = ap_pass_brigade(f->next, msr->of_brigade);
|
||||
@@ -537,6 +545,8 @@ static apr_status_t send_of_brigade(modsec_rec *msr, ap_filter_t *f) {
|
||||
*
|
||||
*/
|
||||
static void inject_content_to_of_brigade(modsec_rec *msr, ap_filter_t *f) {
|
||||
assert(msr != NULL);
|
||||
assert(f != NULL);
|
||||
apr_bucket *b;
|
||||
|
||||
if (msr->txcfg->content_injection_enabled && msr->stream_output_data != NULL) {
|
||||
@@ -563,6 +573,8 @@ static void inject_content_to_of_brigade(modsec_rec *msr, ap_filter_t *f) {
|
||||
*
|
||||
*/
|
||||
static void prepend_content_to_of_brigade(modsec_rec *msr, ap_filter_t *f) {
|
||||
assert(msr != NULL);
|
||||
assert(f != NULL);
|
||||
if ((msr->txcfg->content_injection_enabled) && (msr->content_prepend) && (!msr->of_skipping)) {
|
||||
apr_bucket *bucket_ci = NULL;
|
||||
|
||||
@@ -1008,6 +1020,12 @@ apr_status_t output_filter(ap_filter_t *f, apr_bucket_brigade *bb_in) {
|
||||
/* Now send data down the filter stream
|
||||
* (full-buffering only).
|
||||
*/
|
||||
if (!eos_bucket) {
|
||||
ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, f->r->server,
|
||||
"ModSecurity: Internal Error: eos_bucket is NULL.");
|
||||
return APR_EGENERAL;
|
||||
}
|
||||
|
||||
if ((msr->of_skipping == 0)&&(!msr->of_partial)) {
|
||||
if(msr->of_stream_changed == 1) {
|
||||
inject_content_to_of_brigade(msr,f);
|
||||
|
Reference in New Issue
Block a user