summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/fetchers/curl.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/content/fetchers/curl.c b/content/fetchers/curl.c
index 869c25f0c..6fedda539 100644
--- a/content/fetchers/curl.c
+++ b/content/fetchers/curl.c
@@ -1083,18 +1083,18 @@ size_t fetch_curl_header(char *data, size_t size, size_t nmemb,
i++;
if (i < (int) size) {
- free(f->realm);
- f->realm = malloc(size - i + 1);
- if (f->realm != NULL) {
- strncpy(f->realm, data + i, size - i);
- f->realm[size - i] = '\0';
- for (i = size - i - 1; i >= 0 &&
- (f->realm[i] == ' ' ||
- f->realm[i] == '"' ||
- f->realm[i] == '\t' ||
- f->realm[i] == '\r' ||
- f->realm[i] == '\n'); --i)
- f->realm[i] = '\0';
+ size_t end = i;
+
+ while (end < size && data[end] != '"')
+ ++end;
+
+ if (end < size) {
+ free(f->realm);
+ f->realm = malloc(end - i + 1);
+ if (f->realm != NULL) {
+ strncpy(f->realm, data + i, end - i);
+ f->realm[end - i] = '\0';
+ }
}
}
} else if (11 < size && strncasecmp(data, "Set-Cookie:", 11) == 0) {