From: Jaroslav Kysela Date: Thu, 8 Nov 2018 14:45:55 +0000 (+0100) Subject: http: fix http_access_verify_channel(), fixes #5317 X-Git-Tag: v4.2.8~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89ee1a13bc843db5f69cff7ecd16bb1e8ec56039;p=thirdparty%2Ftvheadend.git http: fix http_access_verify_channel(), fixes #5317 --- diff --git a/src/http.c b/src/http.c index 48c873681..1f8551771 100644 --- a/src/http.c +++ b/src/http.c @@ -1010,36 +1010,18 @@ int http_access_verify_channel(http_connection_t *hc, int mask, struct channel *ch) { - struct http_verify_structure v; - int res = -1; + int res = 0; assert(ch); - http_access_verify_ticket(hc); - if (hc->hc_access) { - res = access_verify2(hc->hc_access, mask); - - if (!res && !channel_access(ch, hc->hc_access, 0)) - res = -1; - } - - if (res) { - access_destroy(hc->hc_access); - if (http_verify_prepare(hc, &v)) { - hc->hc_access = NULL; - return -1; - } - hc->hc_access = access_get(hc->hc_peer, hc->hc_username, - http_verify_callback, &v); - http_verify_free(&v); - if (hc->hc_access) { - res = access_verify2(hc->hc_access, mask); - - if (!res && !channel_access(ch, hc->hc_access, 0)) - res = -1; - } + if (hc->hc_access == NULL) { + res = http_access_verify(hc, mask); + if (res) + return res; } + if (!channel_access(ch, hc->hc_access, 0)) + res = -1; return res; }