summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/http.c19
-rw-r--r--src/client/ui/servers.c8
2 files changed, 18 insertions, 9 deletions
diff --git a/src/client/http.c b/src/client/http.c
index f63b070..0777ede 100644
--- a/src/client/http.c
+++ b/src/client/http.c
@@ -644,22 +644,25 @@ static void parse_file_list(dlhandle_t *dl)
char *list;
char *p;
+ if (!dl->buffer)
+ return;
+
if (cl_http_filelists->integer) {
list = dl->buffer;
- while (1) {
+ while (*list) {
p = strchr(list, '\n');
if (p) {
if (p > list && *(p - 1) == '\r')
*(p - 1) = 0;
*p = 0;
- if (*list)
- check_and_queue_download(list);
- list = p + 1;
- } else {
- if (*list)
- check_and_queue_download(list);
- break;
}
+
+ if (*list)
+ check_and_queue_download(list);
+
+ if (!p)
+ break;
+ list = p + 1;
}
}
diff --git a/src/client/ui/servers.c b/src/client/ui/servers.c
index 4fe9696..a56d462 100644
--- a/src/client/ui/servers.c
+++ b/src/client/ui/servers.c
@@ -459,8 +459,11 @@ static void ParsePlain(void *data, size_t len, size_t chunk)
{
char *list, *p;
+ if (!data)
+ return;
+
list = data;
- while (1) {
+ while (*list) {
p = strchr(list, '\n');
if (p) {
if (p > list && *(p - 1) == '\r')
@@ -482,6 +485,9 @@ static void ParseBinary(void *data, size_t len, size_t chunk)
netadr_t address;
byte *ptr;
+ if (!data)
+ return;
+
address.type = NA_IP;
ptr = data;