Author: rhuijben
Date: Thu Sep 17 13:23:40 2015
New Revision: 1703616
URL: http://svn.apache.org/r1703616
Log:
Merge the r1699791 group from trunk:
* r1699791
Resolve memory leak in cancel scenario.
Justification:
Memory leak.
Votes:
+1: rhuijben, ivan
Modified:
serf/branches/1.3.x/ (props changed)
serf/branches/1.3.x/STATUS
serf/branches/1.3.x/buckets/request_buckets.c
Propchange: serf/branches/1.3.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 17 13:23:40 2015
@@ -1,4 +1,4 @@
/serf/branches/1.3.x:1699925,1699931
/serf/branches/multiple_ssl_impls:1699382
/serf/branches/windows-sspi:1698866-1698877
-/serf/trunk:1699516-1699518,1699520-1699522,1699528,1699530-1699535,1699537,1699539-1699541,1699543,1699548-1699549,1699553,1699555-1699556,1699559-1699560,1699563-1699565,1699567-1699570,1699572-1699573,1699578-1699580,1699582-1699597,1699599-1699602,1699607,1699610,1699615-1699618,1699622-1699623,1699626-1699627,1699633,1699637,1699642,1699645,1699647,1699649-1699650,1699652,1699654-1699655,1699659-1699665,1699671,1699674,1699680-1699683,1699687-1699688,1699690,1699692-1699694,1699698-1699700,1699702,1699707-1699708,1699712-1699716,1699720,1699724,1699728,1699730,1699733,1699762,1699770,1699773,1699777,1699780-1699781,1699798,1699800-1699801,1699817,1699819,1699838,1699843,1699846,1699850,1699858-1699859,1699861,1699873,1699881,1699884,1699902-1699903,1699906,1699924,1699926-1699927,1699930,1699932,1699936-1699937,1699941,1699944,1699948-1699950,1699954,1699957,1699964,1699973,1699975,1700062,1700128,1700149,1700234,1700236,1700246,1700270,1700650,1700830,1702096,1702221,1702264
+/serf/trunk:1699516-1699518,1699520-1699522,1699528,1699530-1699535,1699537,1699539-1699541,1699543,1699548-1699549,1699553,1699555-1699556,1699559-1699560,1699563-1699565,1699567-1699570,1699572-1699573,1699578-1699580,1699582-1699597,1699599-1699602,1699607,1699610,1699615-1699618,1699622-1699623,1699626-1699627,1699633,1699637,1699642,1699645,1699647,1699649-1699650,1699652,1699654-1699655,1699659-1699665,1699671,1699674,1699680-1699683,1699687-1699688,1699690,1699692-1699694,1699698-1699700,1699702,1699707-1699708,1699712-1699716,1699720,1699724,1699728,1699730,1699733,1699762,1699770,1699773,1699777,1699780-1699781,1699791,1699798,1699800-1699801,1699817,1699819,1699838,1699843,1699846,1699850,1699858-1699859,1699861,1699873,1699881,1699884,1699902-1699903,1699906,1699924,1699926-1699927,1699930,1699932,1699936-1699937,1699941,1699944,1699948-1699950,1699954,1699957,1699964,1699973,1699975,1700062,1700128,1700149,1700234,1700236,1700246,1700270,1700650,1700830,1702096,1702221,1
702264
Modified: serf/branches/1.3.x/STATUS
URL:
http://svn.apache.org/viewvc/serf/branches/1.3.x/STATUS?rev=1703616&r1=1703615&r2=1703616&view=diff
==============================================================================
--- serf/branches/1.3.x/STATUS (original)
+++ serf/branches/1.3.x/STATUS Thu Sep 17 13:23:40 2015
@@ -19,13 +19,6 @@ Candidate changes:
Votes:
+1: rhuijben
- * r1699791
- Resolve memory leak in cancel scenario.
- Justification:
- Memory leak.
- Votes:
- +1: rhuijben, ivan
-
* r1699985, r1699993, r1699994
Improve status line verifications
Justification:
Modified: serf/branches/1.3.x/buckets/request_buckets.c
URL:
http://svn.apache.org/viewvc/serf/branches/1.3.x/buckets/request_buckets.c?rev=1703616&r1=1703615&r2=1703616&view=diff
==============================================================================
--- serf/branches/1.3.x/buckets/request_buckets.c (original)
+++ serf/branches/1.3.x/buckets/request_buckets.c Thu Sep 17 13:23:40 2015
@@ -195,6 +195,20 @@ static apr_status_t serf_request_peek(se
return serf_bucket_peek(bucket, data, len);
}
+/* Note that this function is only called when serialize_data()
+ hasn't been called on the bucket */
+static void serf_request_destroy(serf_bucket_t *bucket)
+{
+ request_context_t *ctx = bucket->data;
+
+ serf_bucket_destroy(ctx->headers);
+
+ if (ctx->body)
+ serf_bucket_destroy(ctx->body);
+
+ serf_default_destroy_and_data(bucket);
+}
+
void serf_bucket_request_become(
serf_bucket_t *bucket,
const char *method,
@@ -223,6 +237,6 @@ const serf_bucket_type_t serf_bucket_typ
serf_default_read_for_sendfile,
serf_default_read_bucket,
serf_request_peek,
- serf_default_destroy_and_data,
+ serf_request_destroy,
};