mirror of
https://github.com/json-c/json-c.git
synced 2026-04-05 13:29:06 +08:00
This commit is contained in:
@@ -774,12 +774,11 @@ static int json_object_double_to_json_string_format(struct json_object* jso,
|
|||||||
if (!format)
|
if (!format)
|
||||||
format = std_format;
|
format = std_format;
|
||||||
size = snprintf(buf, sizeof(buf), format, jso->o.c_double);
|
size = snprintf(buf, sizeof(buf), format, jso->o.c_double);
|
||||||
if (modf(jso->o.c_double, &dummy) == 0)
|
if (modf(jso->o.c_double, &dummy) == 0 && size >= 0 && size < (int)sizeof(buf) - 2)
|
||||||
{
|
{
|
||||||
// Ensure it looks like a float, even if snprintf didn't.
|
// Ensure it looks like a float, even if snprintf didn't.
|
||||||
strncat(buf, ".0", sizeof(buf) - 1);
|
strcat(buf, ".0");
|
||||||
if (size >= 0)
|
size += 2;
|
||||||
size += 2; // yes, even if strncat ran out of room
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// although unlikely, snprintf can fail
|
// although unlikely, snprintf can fail
|
||||||
|
|||||||
Reference in New Issue
Block a user