Skip to content

Commit c7a63e7

Browse files
committed
Replace poison memset by memset_s to avoid compiler optimizing it out
1 parent 771504e commit c7a63e7

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

src/input/mpegts/mpegts_table.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ mpegts_table_dispatch
115115
void
116116
mpegts_table_release_ ( mpegts_table_t *mt )
117117
{
118+
int mt_size = sizeof(*mt);
118119
dvb_table_release((mpegts_psi_table_t *)mt);
119120
tvhtrace(LS_MPEGTS, "table: mux %p free %s %02X/%02X (%d) pid %04X (%d)",
120121
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 )
127128
tprofile_done(&mt->mt_profile);
128129
if (tvhtrace_enabled()) {
129130
/* poison */
130-
memset(mt, 0xa5, sizeof(*mt));
131+
#ifdef __STDC_LIB_EXT1__
132+
memset_s(mt, sizeof(*mt), 0xa5, sizeof(*mt));
133+
#else
134+
volatile unsigned char *p = (unsigned char*)mt;
135+
while (mt_size--){
136+
*p++ = 0xa5;
137+
}
138+
#endif
131139
}
132140
free(mt);
133141
}

src/tvheadend.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
#ifndef TVHEADEND_H
1919
#define TVHEADEND_H
2020

21+
#define __STDC_WANT_LIB_EXT1__ 1
22+
2123
#include "build.h"
2224

2325
#include <stdlib.h>

0 commit comments

Comments
 (0)