OpenAPITools / OpenAPITools/openapi-generator
[BUG] [C] _convertToJSON returns NULL if field is numeric and has value 0
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Description
The C generator accidentally treats a numeric field like a pointer
in _convertToJSON and returns NULL whenever that field has value 0.
This applies to all numeric fields (dobue, int) with value 0
when _convertToJSON is called.
openapi-generator version
7.15.0
Suggest a fix
In modules/openapi-generator/src/main/resources/C-libcurl/model-body.mustache
at line 425 we have
{{^isEnum}}
if (!{{{classname}}}->{{{name}}}) {
goto fail;
}
{{/isEnum}}
This is likely wrong and should be something like:
{{^isEnum}}
{{^isNumeric}}
if (!{{{classname}}}->{{{name}}}) {
goto fail;
}
{{/isNumeric}}
{{/isEnum}}
simply because failing when a numeric value is 0 is plain wrong.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in modules/openapi-generator/src/main/resources/C-libcurl/model-body.mustache at line 425 and inspect how numeric fields are handled in _convertToJSON. Reproduce the reported behavior with a numeric field whose value is 0, then verify that generated C code no longer returns NULL for that valid value.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100