From 3d17ab8de59d3be7d78068b9197dbfd1bc5afdfe Mon Sep 17 00:00:00 2001 From: internal <> Date: Tue, 7 Nov 2023 23:16:12 +0100 Subject: [PATCH 1/2] add range checks --- lib/src/ca.c | 2 ++ lib/src/dvb.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/src/ca.c b/lib/src/ca.c index 9c38caa..c35d587 100644 --- a/lib/src/ca.c +++ b/lib/src/ca.c @@ -631,6 +631,8 @@ static int init_ca(struct dddvb *dd, int a, int f, int fd) struct dddvb_ca *ca; char fname[80]; + if (dd->dvbca_num >= DDDVB_MAX_DVB_CA) + return -1; ca = &dd->dvbca[dd->dvbca_num]; ca->dd = dd; ca->anum = a; diff --git a/lib/src/dvb.c b/lib/src/dvb.c index d8b1263..3370396 100644 --- a/lib/src/dvb.c +++ b/lib/src/dvb.c @@ -799,6 +799,8 @@ static int dddvb_fe_init(struct dddvb *dd, int a, int f, int fd) int r; uint32_t i, ds; + if (dd->dvbca_num >= DDDVB_MAX_DVB_CA) + return -1; fe = &dd->dvbfe[dd->dvbfe_num]; r = snprintf(fe->name, sizeof(fe->name), "/dev/dvb/adapter%d/frontend%d", a, f); From be74b9630ffb27f0e4f327093bc7fd4e99c240fa Mon Sep 17 00:00:00 2001 From: internal <> Date: Tue, 7 Nov 2023 23:16:24 +0100 Subject: [PATCH 2/2] increase in case somebody does not use adapter_alloc=3 and gets tons of adapters --- lib/src/dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/dvb.c b/lib/src/dvb.c index 3370396..088dfa1 100644 --- a/lib/src/dvb.c +++ b/lib/src/dvb.c @@ -872,7 +872,7 @@ static int scan_dvbfe(struct dddvb *dd) int a, f, fd; char fname[80]; - for (a = 0; a < 16; a++) { + for (a = 0; a < 256; a++) { for (f = 0; f < 24; f++) { sprintf(fname, "/dev/dvb/adapter%d/frontend%d", a, f); fd = open(fname, O_RDONLY);