avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Douglas Creager (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AVRO-980) C: avro_schema_from_json ignores length parameter
Date Tue, 20 Dec 2011 02:47:30 GMT

     [ https://issues.apache.org/jira/browse/AVRO-980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Douglas Creager updated AVRO-980:
---------------------------------

    Attachment: 0001-AVRO-980.-C-Handle-length-parameter-in-avro_schema_f.patch

Here's a patch for this.  Luckily we upgraded our internal copy of Jansson to 2.1 awhile back
— it has a json_loadb function, which takes in a length parameter.  (Before, we used json_loads,
which assumed a NUL-terminated string.)

One thing we might need to consider is that this might break existing code, if they were passing
in incorrect (or dummy) values for the length parameter.
                
> C: avro_schema_from_json ignores length parameter 
> --------------------------------------------------
>
>                 Key: AVRO-980
>                 URL: https://issues.apache.org/jira/browse/AVRO-980
>             Project: Avro
>          Issue Type: Bug
>          Components: c
>    Affects Versions: 1.6.1
>         Environment: Linux x86_64 (Ubuntu 11.10)
> Avro 1.6.1
> GCC 4.6.1
> cmake 2.8.5
>            Reporter: Michael Cooper
>            Priority: Minor
>              Labels: c, schema
>         Attachments: 0001-AVRO-980.-C-Handle-length-parameter-in-avro_schema_f.patch
>
>
> The function avro_schema_from_json() takes in a const char* and a length parameter, but
it appears that the length parameter is ignored.
> We have a project where the schema is a binary resource compiled into the executable,
and is not guaranteed to have a null terminator at the end.
> This did not appear to be an issue because the function had a length parameter.
> The other day, It kept throwing errors about characters that were not in the file at
all.
> Suspecting it was running off the end of the file, I had a look at the Avro-C code and
found that even though the function takes in a length parameter, it does not use it and expects
a null terminator.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message