Mesa (master): util/xmlconfig: fix sha1 comparison code
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Apr 3 10:06:32 UTC 2020
Module: Mesa
Branch: master
Commit: 43f785419cba3072fdfd3130ce3e51b37485739d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=43f785419cba3072fdfd3130ce3e51b37485739d
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Fri Apr 3 09:25:05 2020 +0200
util/xmlconfig: fix sha1 comparison code
Fixes: 8f48e7b1e99 ("util/xmlconfig: add new sha1 application attribute")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2730
Reviewed-by: Dave Airlie <airlied at redhat.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4426>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4426>
---
src/util/xmlconfig.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c
index 0ef67ab7b76..4ddad79e8bd 100644
--- a/src/util/xmlconfig.c
+++ b/src/util/xmlconfig.c
@@ -791,7 +791,8 @@ parseAppAttr(struct OptConfData *data, const XML_Char **attr)
if (exec && strcmp (exec, data->execName)) {
data->ignoringApp = data->inApp;
} else if (sha1) {
- if (strlen(sha1) != 40) {
+ /* SHA1_DIGEST_STRING_LENGTH includes terminating null byte */
+ if (strlen(sha1) != (SHA1_DIGEST_STRING_LENGTH - 1)) {
XML_WARNING("Incorrect sha1 application attribute");
data->ignoringApp = data->inApp;
} else {
@@ -800,13 +801,13 @@ parseAppAttr(struct OptConfData *data, const XML_Char **attr)
char path[PATH_MAX];
if (util_get_process_exec_path(path, ARRAY_SIZE(path)) > 0 &&
(content = os_read_file(path, &len))) {
- uint8_t sha1x[20];
- char sha1s[40];
+ uint8_t sha1x[SHA1_DIGEST_LENGTH];
+ char sha1s[SHA1_DIGEST_STRING_LENGTH];
_mesa_sha1_compute(content, len, sha1x);
_mesa_sha1_format((char*) sha1s, sha1x);
free(content);
- if (memcmp(sha1, sha1s, SHA1_DIGEST_LENGTH)) {
+ if (strcmp(sha1, sha1s)) {
data->ignoringApp = data->inApp;
}
} else {
More information about the mesa-commit
mailing list