From dfda18698597a550566b1de7d905277456908b9b Mon Sep 17 00:00:00 2001 From: Eric Warmenhoven Date: Tue, 12 Dec 2023 11:44:29 -0500 Subject: [PATCH] Fix webdav crash bug in digest auth handling (#16003) --- network/cloud_sync/webdav.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/network/cloud_sync/webdav.c b/network/cloud_sync/webdav.c index 48493385bf..2f9f856c6c 100644 --- a/network/cloud_sync/webdav.c +++ b/network/cloud_sync/webdav.c @@ -217,10 +217,18 @@ static bool webdav_create_digest_auth(char *digest) else if (string_starts_with(ptr, "algorithm=")) { ptr += STRLEN_CONST("algorithm="); - sz = strchr(ptr, ',') + 1 - ptr; - webdav_st->algo = malloc(sz); - strlcpy(webdav_st->algo, ptr, sz); - ptr += sz; + if (strchr(ptr, ',')) + { + sz = strchr(ptr, ',') + 1 - ptr; + webdav_st->algo = malloc(sz); + strlcpy(webdav_st->algo, ptr, sz); + ptr += sz; + } + else + { + webdav_st->algo = strdup(ptr); + ptr += strlen(ptr); + } } else if (string_starts_with(ptr, "opaque=\"")) {