1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Replace sprintf with snprintf to eliminate compile warnings. v6.0.45 (#3534)

* Replaced all occurrences of sprintf with snprintf to address deprecation warnings
* Ensured proper buffer size is passed to snprintf to prevent potential buffer overflows
* Ran tests to confirm that the changes do not introduce any new issues or regressions

---------

Co-authored-by: ChenGH <chengh_math@126.com>
This commit is contained in:
chundonglinlin 2023-05-14 13:04:21 +08:00 committed by GitHub
parent 0629beeb0a
commit c0e931ae7a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 61 additions and 31 deletions

View file

@ -567,7 +567,8 @@ json_value * json_parse_ex (json_settings * settings,
if (flags & flag_string)
{
if (!b)
{ sprintf (error, "Unexpected EOF in string (at %d:%d)", line_and_col);
{
snprintf(error, json_error_max, "Unexpected EOF in string (at %d:%d)", line_and_col);
goto e_failed;
}
@ -593,7 +594,7 @@ json_value * json_parse_ex (json_settings * settings,
(uc_b3 = hex_value (*++ state.ptr)) == 0xFF ||
(uc_b4 = hex_value (*++ state.ptr)) == 0xFF)
{
sprintf (error, "Invalid character value `%c` (at %d:%d)", b, line_and_col);
snprintf(error, json_error_max, "Invalid character value `%c` (at %d:%d)", b, line_and_col);
goto e_failed;
}
@ -610,7 +611,7 @@ json_value * json_parse_ex (json_settings * settings,
(uc_b3 = hex_value (*++ state.ptr)) == 0xFF ||
(uc_b4 = hex_value (*++ state.ptr)) == 0xFF)
{
sprintf (error, "Invalid character value `%c` (at %d:%d)", b, line_and_col);
snprintf(error, json_error_max, "Invalid character value `%c` (at %d:%d)", b, line_and_col);
goto e_failed;
}
@ -739,7 +740,8 @@ json_value * json_parse_ex (json_settings * settings,
if (flags & flag_block_comment)
{
if (!b)
{ sprintf (error, "%d:%d: Unexpected EOF in block comment", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Unexpected EOF in block comment", line_and_col);
goto e_failed;
}
@ -755,12 +757,14 @@ json_value * json_parse_ex (json_settings * settings,
else if (b == '/')
{
if (! (flags & (flag_seek_value | flag_done)) && top->type != json_object)
{ sprintf (error, "%d:%d: Comment not allowed here", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Comment not allowed here", line_and_col);
goto e_failed;
}
if (++ state.ptr == end)
{ sprintf (error, "%d:%d: EOF unexpected", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: EOF unexpected", line_and_col);
goto e_failed;
}
@ -775,7 +779,7 @@ json_value * json_parse_ex (json_settings * settings,
continue;
default:
sprintf (error, "%d:%d: Unexpected `%c` in comment opening sequence", line_and_col, b);
snprintf(error, json_error_max, "%d:%d: Unexpected `%c` in comment opening sequence", line_and_col, b);
goto e_failed;
};
}
@ -793,7 +797,7 @@ json_value * json_parse_ex (json_settings * settings,
default:
sprintf (error, "%d:%d: Trailing garbage: `%c`",
snprintf(error, json_error_max, "%d:%d: Trailing garbage: `%c`",
state.cur_line, state.cur_col, b);
goto e_failed;
@ -812,7 +816,8 @@ json_value * json_parse_ex (json_settings * settings,
if (top && top->type == json_array)
flags = (flags & ~ (flag_need_comma | flag_seek_value)) | flag_next;
else
{ sprintf (error, "%d:%d: Unexpected ]", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Unexpected ]", line_and_col);
goto e_failed;
}
@ -828,7 +833,7 @@ json_value * json_parse_ex (json_settings * settings,
}
else
{
sprintf (error, "%d:%d: Expected , before %c",
snprintf(error, json_error_max, "%d:%d: Expected , before %c",
state.cur_line, state.cur_col, b);
goto e_failed;
@ -843,7 +848,7 @@ json_value * json_parse_ex (json_settings * settings,
}
else
{
sprintf (error, "%d:%d: Expected : before %c",
snprintf(error, json_error_max, "%d:%d: Expected : before %c",
state.cur_line, state.cur_col, b);
goto e_failed;
@ -969,7 +974,8 @@ json_value * json_parse_ex (json_settings * settings,
continue;
}
else
{ sprintf (error, "%d:%d: Unexpected %c when seeking value", line_and_col, b);
{
snprintf(error, json_error_max, "%d:%d: Unexpected %c when seeking value", line_and_col, b);
goto e_failed;
}
};
@ -989,7 +995,8 @@ json_value * json_parse_ex (json_settings * settings,
case '"':
if (flags & flag_need_comma)
{ sprintf (error, "%d:%d: Expected , before \"", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Expected , before \"", line_and_col);
goto e_failed;
}
@ -1014,7 +1021,7 @@ json_value * json_parse_ex (json_settings * settings,
}
default:
sprintf (error, "%d:%d: Unexpected `%c` in object", line_and_col, b);
snprintf(error, json_error_max, "%d:%d: Unexpected `%c` in object", line_and_col, b);
goto e_failed;
};
@ -1032,7 +1039,8 @@ json_value * json_parse_ex (json_settings * settings,
if (! (flags & flag_num_e))
{
if (flags & flag_num_zero)
{ sprintf (error, "%d:%d: Unexpected `0` before `%c`", line_and_col, b);
{
snprintf(error, json_error_max, "%d:%d: Unexpected `0` before `%c`", line_and_col, b);
goto e_failed;
}
@ -1069,7 +1077,8 @@ json_value * json_parse_ex (json_settings * settings,
else if (b == '.' && top->type == json_integer)
{
if (!num_digits)
{ sprintf (error, "%d:%d: Expected digit before `.`", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Expected digit before `.`", line_and_col);
goto e_failed;
}
@ -1085,7 +1094,8 @@ json_value * json_parse_ex (json_settings * settings,
if (top->type == json_double)
{
if (!num_digits)
{ sprintf (error, "%d:%d: Expected digit after `.`", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Expected digit after `.`", line_and_col);
goto e_failed;
}
@ -1111,7 +1121,8 @@ json_value * json_parse_ex (json_settings * settings,
else
{
if (!num_digits)
{ sprintf (error, "%d:%d: Expected digit after `e`", line_and_col);
{
snprintf(error, json_error_max, "%d:%d: Expected digit after `e`", line_and_col);
goto e_failed;
}
@ -1196,8 +1207,8 @@ json_value * json_parse_ex (json_settings * settings,
return root;
e_unknown_value:
sprintf (error, "%d:%d: Unknown value", line_and_col);
snprintf(error, json_error_max, "%d:%d: Unknown value", line_and_col);
goto e_failed;
e_alloc_failure:
@ -1206,8 +1217,8 @@ e_alloc_failure:
goto e_failed;
e_overflow:
sprintf (error, "%d:%d: Too long (caught overflow)", line_and_col);
snprintf(error, json_error_max, "%d:%d: Too long (caught overflow)", line_and_col);
goto e_failed;
e_failed: