Selaa lähdekoodia

Fix memory leak

bel 8 vuotta sitten
vanhempi
commit
85b9b7e09e
1 muutettua tiedostoa jossa 10 lisäystä ja 6 poistoa
  1. 10 6
      src/handle_form.inl

+ 10 - 6
src/handle_form.inl

@@ -91,7 +91,7 @@ url_encoded_field_get(const struct mg_connection *conn,
 	char key_dec[1024];
 
 	char *value_dec = mg_malloc(value_len + 1);
-	int value_dec_len;
+	int value_dec_len, ret;
 
 	if (!value_dec) {
 		/* Log error message and stop parsing the form data. */
@@ -107,10 +107,14 @@ url_encoded_field_get(const struct mg_connection *conn,
 	value_dec_len =
 	    mg_url_decode(value, (int)value_len, value_dec, (int)value_len + 1, 1);
 
-	return fdh->field_get(key_dec,
-	                      value_dec,
-	                      (size_t)value_dec_len,
-	                      fdh->user_data);
+	ret = fdh->field_get(key_dec,
+	                     value_dec,
+	                     (size_t)value_dec_len,
+	                     fdh->user_data);
+
+	mg_free(value_dec);
+
+	return ret;
 }
 
 
@@ -123,7 +127,7 @@ unencoded_field_get(const struct mg_connection *conn,
                     struct mg_form_data_handler *fdh)
 {
 	char key_dec[1024];
-    (void)conn;
+	(void)conn;
 
 	mg_url_decode(key, (int)key_len, key_dec, (int)sizeof(key_dec), 1);