From: Flole998 Date: Sun, 18 Feb 2024 23:02:30 +0000 (+0000) Subject: Replace poison memset by memset_s to avoid compiler optimizing it out X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7a63e7e3b7c15d6f2c1048efafbaaa5a854ea7d;p=thirdparty%2Ftvheadend.git Replace poison memset by memset_s to avoid compiler optimizing it out --- diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index dd88aaca0..3f7380db6 100644 --- a/src/input/mpegts/mpegts_table.c +++ b/src/input/mpegts/mpegts_table.c @@ -115,6 +115,7 @@ mpegts_table_dispatch void mpegts_table_release_ ( mpegts_table_t *mt ) { + int mt_size = sizeof(*mt); dvb_table_release((mpegts_psi_table_t *)mt); tvhtrace(LS_MPEGTS, "table: mux %p free %s %02X/%02X (%d) pid %04X (%d)", mt->mt_mux, mt->mt_name, mt->mt_table, mt->mt_mask, mt->mt_table, @@ -127,7 +128,14 @@ mpegts_table_release_ ( mpegts_table_t *mt ) tprofile_done(&mt->mt_profile); if (tvhtrace_enabled()) { /* poison */ - memset(mt, 0xa5, sizeof(*mt)); + #ifdef __STDC_LIB_EXT1__ + memset_s(mt, sizeof(*mt), 0xa5, sizeof(*mt)); + #else + volatile unsigned char *p = (unsigned char*)mt; + while (mt_size--){ + *p++ = 0xa5; + } + #endif } free(mt); } diff --git a/src/tvheadend.h b/src/tvheadend.h index 7a6aa820b..23f58cbd9 100644 --- a/src/tvheadend.h +++ b/src/tvheadend.h @@ -18,6 +18,8 @@ #ifndef TVHEADEND_H #define TVHEADEND_H +#define __STDC_WANT_LIB_EXT1__ 1 + #include "build.h" #include