Re: [PATCH] fix: check parameters in json-write.c
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Sep 19, 2023, 17:48 UTC
- Message-ID
- <ZQne3ThSw6HVmNJc@nand.local>
- In-Reply-To
- <pull.1576.git.git.1695124498925.gitgitgadget@gmail.com>
[+cc Jeff Hostetler]
On Tue, Sep 19, 2023 at 11:54:58AM +0000, mark via GitGitGadget wrote:
Show 12 quoted lines
> diff --git a/json-writer.c b/json-writer.c
> index 005c820aa42..23ba7046e5d 100644
> --- a/json-writer.c
> +++ b/json-writer.c
> @@ -20,6 +20,11 @@ static void append_quoted_string(struct strbuf *out, const char *in)
> {
> unsigned char c;
>
> + if (!in || !*in) {
> + strbuf_addstr(out, "\"\"");
> + return;
> + }From reading the implementation of append_quoted_string(), I think that the case where "in" is the empty string is already covered. IOW, doing something like:
struct strbuf buf = STRBUF_INIT;
append_quoted_string(&out, "");
warning("'%s'", buf.buf);would print out something like:
warning: '""'
as expected. Handling a NULL "in" argument is new behavior, but I am not sure if it is appropriate to coerce a NULL input into the empty string. I've CC'd the author of this code, whose opinion I trust more than my own here.
Thanks, Taylor