From 322afe1361c691aadd80e8d50ca837fd77e3b82b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 20 May 2014 16:00:48 +0200 Subject: [PATCH] httpc: fix http_port() - NULL scheme --- src/httpc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/httpc.c b/src/httpc.c index ddd5beda..a2bbdcdd 100644 --- a/src/httpc.c +++ b/src/httpc.c @@ -84,14 +84,14 @@ static int http_port( const char *scheme, int port ) { if (port <= 0 || port > 65535) { - if (strcmp(scheme, "http") == 0) + if (scheme && strcmp(scheme, "http") == 0) port = 80; - else if (strcmp(scheme, "https") == 0) + else if (scheme && strcmp(scheme, "https") == 0) port = 443; - else if (strcmp(scheme, "rtsp") == 0) + else if (scheme && strcmp(scheme, "rtsp") == 0) port = 554; else { - tvhlog(LOG_ERR, "httpc", "Unknown scheme '%s'", scheme); + tvhlog(LOG_ERR, "httpc", "Unknown scheme '%s'", scheme ? scheme : ""); return -EINVAL; } } @@ -1162,6 +1162,8 @@ http_client_reconnect hc->hc_scheme = strdup(scheme); hc->hc_host = strdup(host); hc->hc_port = port; + if (port < 0) + return -EINVAL; hc->hc_fd = tcp_connect(host, port, errbuf, sizeof(errbuf), -1); if (hc->hc_fd < 0) { tvhlog(LOG_ERR, "httpc", "Unable to connect to %s:%i - %s", host, port, errbuf);