Module: Mesa Branch: master Commit: 43f785419cba3072fdfd3130ce3e51b37485739d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=43f785419cba3072fdfd3130ce3e51b37485739d
Author: Pierre-Eric Pelloux-Prayer <[email protected]> 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 <[email protected]> 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 { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
