bundle-uri: avoid using undefined output of sscanf()
In c429bed102 (bundle-uri: store fetch.bundleCreationToken, 2023-01-31)
code was introduced that assumes that an `sscanf()` call leaves its
output variables unchanged unless the return value indicates success.
However, the POSIX documentation makes no such guarantee:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/sscanf.html
So let's make sure that the output variable `maxCreationToken` is
always well-defined.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
ee63d026b4
commit
d7cfbd4351
12
bundle-uri.c
12
bundle-uri.c
@@ -532,11 +532,13 @@ static int fetch_bundles_by_token(struct repository *r,
|
|||||||
*/
|
*/
|
||||||
if (!repo_config_get_value(r,
|
if (!repo_config_get_value(r,
|
||||||
"fetch.bundlecreationtoken",
|
"fetch.bundlecreationtoken",
|
||||||
&creationTokenStr) &&
|
&creationTokenStr)) {
|
||||||
sscanf(creationTokenStr, "%"PRIu64, &maxCreationToken) == 1 &&
|
if (sscanf(creationTokenStr, "%"PRIu64, &maxCreationToken) != 1)
|
||||||
bundles.items[0]->creationToken <= maxCreationToken) {
|
maxCreationToken = 0;
|
||||||
free(bundles.items);
|
if (bundles.items[0]->creationToken <= maxCreationToken) {
|
||||||
return 0;
|
free(bundles.items);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user