When a request was received with a Content-type of json,
the body was sent for json parsing - even if it was zero
length. This resulted in ARI requests failing that were
valid, such as a channel DELETE with no parameters. The
code has now been changed to skip json parsing with zero
content length.
(closes issue SWP-6748)
Reported by: Samuel Galarneau
Review: https://reviewboard.asterisk.org/r/3360/
........
Merged revisions 410858 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410863
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
}
buf = ast_http_get_contents(&content_length, ser, headers);
- if (buf == NULL)
- {
+ if (buf == NULL) {
/* errno already set */
return NULL;
}
+ if (!content_length) {
+ /* it is not an error to have zero content */
+ return NULL;
+ }
+
body = ast_json_load_buf(buf, content_length, NULL);
if (body == NULL) {
/* Failed to parse JSON; treat as an I/O error */