Commit 0d280ea4 by Carlos Martín Nieto

config: use snprintf instead of sprintf

Due to the preconditions, there should never be an error, but it pays
to be paranoid.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
parent 956ad0ed
...@@ -648,7 +648,7 @@ static char *build_varname(const char *section, const char *name) ...@@ -648,7 +648,7 @@ static char *build_varname(const char *section, const char *name)
static int parse_section_header_ext(const char *line, const char *base_name, char **section_name) static int parse_section_header_ext(const char *line, const char *base_name, char **section_name)
{ {
int buf_len, total_len, pos, rpos; int buf_len, total_len, pos, rpos;
int c; int c, ret;
char *subsection, *first_quote, *last_quote; char *subsection, *first_quote, *last_quote;
int error = GIT_SUCCESS; int error = GIT_SUCCESS;
int quote_marks; int quote_marks;
...@@ -713,7 +713,16 @@ static int parse_section_header_ext(const char *line, const char *base_name, cha ...@@ -713,7 +713,16 @@ static int parse_section_header_ext(const char *line, const char *base_name, cha
goto out; goto out;
} }
sprintf(*section_name, "%s %s", base_name, subsection); ret = snprintf(*section_name, total_len, "%s %s", base_name, subsection);
if (ret >= total_len) {
/* If this fails, we've checked the length wrong */
error = GIT_ERROR;
goto out;
} else if (ret < 0) {
error = GIT_EOSERR;
goto out;
}
git__strntolower(*section_name, strchr(*section_name, ' ') - *section_name); git__strntolower(*section_name, strchr(*section_name, ' ') - *section_name);
out: out:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment