Miguel da Rocha Correia Lima created PROTON-661: ---------------------------------------------------
Summary: pn_message_save_* do not return correct message size when PN_OVERFLOW Key: PROTON-661 URL: https://issues.apache.org/jira/browse/PROTON-661 Project: Qpid Proton Issue Type: Bug Components: proton-c Affects Versions: 0.7, 0.5, 0.4 Environment: All plataforms Reporter: Miguel da Rocha Correia Lima Priority: Critical Expected behavior: When you use pn_message_save* functions API, you pass char *data and char *size. If the size IS NOT enough to save mesage body text, this functions return in char *size variable, the necessary buffer size and return PN_OVERFLOW status. Behavior observed: The pn_message_save* functions API return PN_OVERFLOW status and DO NOT return a correct value of necessary buffer. Patch to fix expected behavior : --<cut>-------------------------------------------------------------------- diff -Naur qpid-proton-0.7-ORIG/proton-c/src/message/message.c qpid-proton-0.7-LDX/p --- qpid-proton-0.7-ORIG/proton-c/src/message/message.c 2014-03-10 13:33:11.00000000 +++ qpid-proton-0.7-LDX/proton-c/src/message/message.c 2014-09-04 23:31:44.92800000 @@ -972,6 +972,7 @@ pn_data_error(msg->body)); if (scanned) { if (bytes.size > *size) { + *size = bytes.size; return PN_OVERFLOW; } else { memcpy(data, bytes.start, bytes.size); @@ -994,6 +995,7 @@ { pn_bytes_t str = pn_data_get_bytes(msg->body); if (str.size >= *size) { + *size = str.size; return PN_OVERFLOW; } else { memcpy(data, str.start, str.size); --<cut>-------------------------------------------------------------------- -- This message was sent by Atlassian JIRA (v6.3.4#6332)