diff --git a/smi/src/nrt_system.c b/smi/src/nrt_system.c index 7e8d71c18802b888d4ba8171c1a1cae593480949..7edfab37cf4d6217150b68f42ec5ca89e1c5b9e2 100644 --- a/smi/src/nrt_system.c +++ b/smi/src/nrt_system.c @@ -7,6 +7,8 @@ #include <stdlib.h> #include <sys/io.h> #include <sys/resource.h> +#include <limits.h> +#include <signal.h> // UDP socket related #include <netdb.h> @@ -375,6 +377,14 @@ int nrtSmi(char *esmFile, char *tssFile, char *tdeFile, char *cfgFile) { printf("[nrtSmi] data type mismatch\n"); goto exit; } + + /* check size of sig_atomic_t type */ + if (sizeof(sig_atomic_t)*CHAR_BIT<4*8) + { + error=4; + printf("[nrtSmi] atomic type size too small\n"); + goto exit; + } printf("[nrtSmi] allocating system shared memory\n"); if (initShm(&shm_fd,sizeof(shm_struct),(void *) &shm,SHM_FILE)!=0) {