[ 
https://issues.apache.org/jira/browse/PROTON-661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14145183#comment-14145183
 ] 

Rafael H. Schloming commented on PROTON-661:
--------------------------------------------

The patch seems to have lost its formatting. Can you attach it as a file?

> 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
>
> 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)

Reply via email to