Skip to content

Commit eb8a2b4

Browse files
committed
Fix memory leak
1 parent 9bcb2a6 commit eb8a2b4

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Diff for: src/mod_redirectionio.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,11 @@ static apr_status_t redirectionio_filter_body_filtering(ap_filter_t *f, apr_buck
276276
return ap_pass_brigade(f->next, bb);
277277
}
278278

279-
input.data = malloc(input.len);
280-
memcpy(input.data, input_bucket, input.len);
281-
282279
// Send bucket
283280
if (input.len > 0) {
281+
input.data = malloc(input.len);
282+
memcpy(input.data, input_bucket, input.len);
283+
284284
output = redirectionio_action_body_filter_filter(ctx->body_filter, input);
285285

286286
// Create a new one

Diff for: src/redirectionio_protocol.c

+6
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ apr_status_t redirectionio_protocol_log(redirectionio_connection *conn, redirect
159159
rv = redirectionio_send_protocol_header(conn, project_key, REDIRECTIONIO_PROTOCOL_COMMAND_LOG, r);
160160

161161
if (rv != APR_SUCCESS) {
162+
free((char *)log);
163+
162164
return rv;
163165
}
164166

@@ -167,6 +169,7 @@ apr_status_t redirectionio_protocol_log(redirectionio_connection *conn, redirect
167169

168170
if (rv != APR_SUCCESS) {
169171
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "mod_redirectionio: Error sending log command length: %s", apr_strerror(rv, errbuf, sizeof(errbuf)));
172+
free((char *)log);
170173

171174
return rv;
172175
}
@@ -175,10 +178,13 @@ apr_status_t redirectionio_protocol_log(redirectionio_connection *conn, redirect
175178

176179
if (rv != APR_SUCCESS) {
177180
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "mod_redirectionio: Error sending log command data: %s", apr_strerror(rv, errbuf, sizeof(errbuf)));
181+
free((char *)log);
178182

179183
return rv;
180184
}
181185

186+
free((char *)log);
187+
182188
return APR_SUCCESS;
183189
}
184190

0 commit comments

Comments
 (0)