Wrap cjson.encode in a pcall in SamplesDecoder and ResourcesDecoder
Change-Id: I541e241d4c398c458e7ec098debef6d241a954d9
diff --git a/heka/files/lua/common/resources.lua b/heka/files/lua/common/resources.lua
index dc18329..fcb8c94 100644
--- a/heka/files/lua/common/resources.lua
+++ b/heka/files/lua/common/resources.lua
@@ -124,7 +124,11 @@
for _, sample in ipairs(message_body["payload"]) do
add_resource_to_payload(sample, resource_payload)
end
- resource_msg.Payload = cjson.encode(resource_payload)
+ local ok, payload = pcall(cjson.encode, resource_payload)
+ if not ok then
+ return -1, "Cannot encode resource_payload"
+ end
+ resource_msg.Payload = payload
resource_msg.Timestamp = patt.Timestamp:match(message_body.timestamp)
return 0, resource_msg
end
diff --git a/heka/files/lua/common/samples.lua b/heka/files/lua/common/samples.lua
index ad93873..af9c6c9 100644
--- a/heka/files/lua/common/samples.lua
+++ b/heka/files/lua/common/samples.lua
@@ -184,7 +184,11 @@
for _, sample in ipairs(message_body["payload"]) do
self:add_sample_to_payload(sample, sample_payload)
end
- sample_msg.Payload = cjson.encode(sample_payload)
+ local ok, payload = pcall(cjson.encode, sample_payload)
+ if not ok then
+ return -1, "Cannot encode sample_payload"
+ end
+ sample_msg.Payload = payload
sample_msg.Timestamp = patt.Timestamp:match(message_body.timestamp)
return 0, sample_msg
end