From 97690a241d181e4f43dc4dc74b9420305a403ad1 Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Sun, 12 Oct 2014 11:18:08 -0300 Subject: [PATCH] campaignd: Clear [feedback] from campaign list response *after* using it Fixes an attempt to dereference a destroyed config object, causing undefined behavior. --- src/campaign_server/campaign_server.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/campaign_server/campaign_server.cpp b/src/campaign_server/campaign_server.cpp index 1f8e3a619848..895c5fdb4d65 100644 --- a/src/campaign_server/campaign_server.cpp +++ b/src/campaign_server/campaign_server.cpp @@ -421,11 +421,12 @@ void server::handle_request_campaign_list(const server::request& req) // Build a feedback_url string attribute from the // internal [feedback] data. const config& url_params = j.child_or_empty("feedback"); - j.clear_children("feedback"); - if(!url_params.empty() && !feedback_url_format_.empty()) { j["feedback_url"] = format_addon_feedback_url(feedback_url_format_, url_params); } + + // Clients don't need to see the original data, so discard it. + j.clear_children("feedback"); } config response;