[ https://issues.apache.org/jira/browse/PROTON-661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Miguel da Rocha Correia Lima updated PROTON-661: ------------------------------------------------ Attachment: landix-ret-size-message-save.patch Patch to return necessary buffer message size in pm_message_save* . > 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.4, 0.5, 0.7 > Environment: All plataforms > Reporter: Miguel da Rocha Correia Lima > Priority: Critical > Attachments: landix-ret-size-message-save.patch > > > 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)