From: Adam Sutton Date: Thu, 22 Jan 2015 15:12:09 +0000 (+0000) Subject: linuxdvb: fix possible bug with multi-frontend adapters X-Git-Tag: v4.1~439 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f88f2f33ff4c0a2e16afe551b652e6aba6776d25;p=thirdparty%2Ftvheadend.git linuxdvb: fix possible bug with multi-frontend adapters --- diff --git a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c index b34c1cb02..ad9a91905 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c @@ -193,7 +193,7 @@ linuxdvb_adapter_add ( const char *path ) struct dvb_frontend_info dfi; SHA_CTX sha1; uint8_t uuidbin[20]; - htsmsg_t *conf, *feconf; + htsmsg_t *conf = NULL, *feconf = NULL; int save = 0; dvb_fe_type_t type; #if DVB_VER_ATLEAST(5,5) @@ -222,8 +222,6 @@ linuxdvb_adapter_add ( const char *path ) /* Process each frontend */ for (i = 0; i < 32; i++) { - conf = feconf = NULL; - snprintf(fe_path, sizeof(fe_path), FE_PATH, path, i); /* Wait for access (first FE can take a fe ms to be setup) */ @@ -340,9 +338,12 @@ linuxdvb_adapter_add ( const char *path ) } #endif pthread_mutex_unlock(&global_lock); - htsmsg_destroy(conf); } + /* Cleanup */ + if (conf) + htsmsg_destroy(conf); + /* Relock before exit */ pthread_mutex_lock(&global_lock);