diff options
author | Patrick Steinhardt <ps@pks.im> | 2018-10-18 11:58:14 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2018-10-18 11:58:14 +0200 |
commit | 2613fbb26a3e1a34dda8a5d198c108626cfd6cc3 (patch) | |
tree | 968df61bb825f5d2efc70c1fb2734b42df115732 | |
parent | 21652ee9de439e042cc2e69b208aa2ef8ce31147 (diff) | |
download | libgit2-2613fbb26a3e1a34dda8a5d198c108626cfd6cc3.tar.gz |
global: replace remaining use of `git__strtol32`
Replace remaining uses of the `git__strtol32` function. While these uses
are all safe as the strings were either sanitized or from a trusted
source, we want to remove `git__strtol32` altogether to avoid future
misuse.
-rw-r--r-- | src/rebase.c | 2 | ||||
-rw-r--r-- | src/revparse.c | 5 | ||||
-rw-r--r-- | src/streams/curl.c | 2 | ||||
-rw-r--r-- | src/transports/smart_pkt.c | 2 | ||||
-rw-r--r-- | src/transports/winhttp.c | 3 |
5 files changed, 8 insertions, 6 deletions
diff --git a/src/rebase.c b/src/rebase.c index bc3c5995c..6503e5fc5 100644 --- a/src/rebase.c +++ b/src/rebase.c @@ -152,7 +152,7 @@ GIT_INLINE(int) rebase_readint( if ((error = rebase_readfile(asc_out, state_path, filename)) < 0) return error; - if (git__strtol32(&num, asc_out->ptr, &eol, 10) < 0 || num < 0 || *eol) { + if (git__strntol32(&num, asc_out->ptr, asc_out->size, &eol, 10) < 0 || num < 0 || *eol) { giterr_set(GITERR_REBASE, "the file '%s' contains an invalid numeric value", filename); return -1; } diff --git a/src/revparse.c b/src/revparse.c index bdbf87558..df96f9d86 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -128,7 +128,8 @@ static int try_parse_numeric(int *n, const char *curly_braces_content) int32_t content; const char *end_ptr; - if (git__strtol32(&content, curly_braces_content, &end_ptr, 10) < 0) + if (git__strntol32(&content, curly_braces_content, strlen(curly_braces_content), + &end_ptr, 10) < 0) return -1; if (*end_ptr != '\0') @@ -578,7 +579,7 @@ static int extract_how_many(int *n, const char *spec, size_t *pos) } while (spec[(*pos)] == kind && kind == '~'); if (git__isdigit(spec[*pos])) { - if (git__strtol32(&parsed, spec + *pos, &end_ptr, 10) < 0) + if (git__strntol32(&parsed, spec + *pos, strlen(spec + *pos), &end_ptr, 10) < 0) return GIT_EINVALIDSPEC; accumulated += (parsed - 1); diff --git a/src/streams/curl.c b/src/streams/curl.c index ee13be1dc..3c0af3b04 100644 --- a/src/streams/curl.c +++ b/src/streams/curl.c @@ -330,7 +330,7 @@ int git_curl_stream_new(git_stream **out, const char *host, const char *port) return -1; } - if ((error = git__strtol32(&iport, port, NULL, 10)) < 0) { + if ((error = git__strntol32(&iport, port, strlen(port), NULL, 10)) < 0) { git__free(st); return error; } diff --git a/src/transports/smart_pkt.c b/src/transports/smart_pkt.c index 6a404efe4..fb59c70ec 100644 --- a/src/transports/smart_pkt.c +++ b/src/transports/smart_pkt.c @@ -391,7 +391,7 @@ static int parse_len(size_t *out, const char *line, size_t linelen) } } - if ((error = git__strtol32(&len, num, &num_end, 16)) < 0) + if ((error = git__strntol32(&len, num, PKT_LEN_SIZE, &num_end, 16)) < 0) return error; if (len < 0) diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c index 3df892d09..e925dbdc0 100644 --- a/src/transports/winhttp.c +++ b/src/transports/winhttp.c @@ -766,7 +766,8 @@ static int winhttp_connect( t->connection = NULL; /* Prepare port */ - if (git__strtol32(&port, t->connection_data.port, NULL, 10) < 0) + if (git__strntol32(&port, t->connection_data.port, + strlen(t->connection_data.port), NULL, 10) < 0) return -1; /* Prepare host */ |