|
@@ -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); |
|
|
|
|
|
if (size >= 0) |
|
|
|
|
|
size += 2; // yes, even if strncat ran out of room |
|
|
|
|
|
|
|
|
strcat(buf, ".0"); |
|
|
|
|
|
size += 2; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// although unlikely, snprintf can fail |
|
|
// although unlikely, snprintf can fail |
|
|