Add typecast for sign extension 32/268932/2
authorChanggyu Choi <changyu.choi@samsung.com>
Wed, 5 Jan 2022 03:24:53 +0000 (12:24 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Wed, 5 Jan 2022 03:35:23 +0000 (12:35 +0900)
Change-Id: I8aab5bb2492074ee0dfe4652720da788d2c9f4a7
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
parser/exec-checker/src/exec_checker.cc

index 08cd9ec..40f7caf 100644 (file)
@@ -18,7 +18,7 @@
 #include <elf.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <linux/limits.h>
+#include <limits.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
@@ -87,7 +87,7 @@ char* GetDataFromFile(FILE* fp, unsigned long offset, size_t size) {
     return nullptr;
   }
 
-  if (Read(fp, ptr, static_cast<long>(offset & __LONG_MAX__), size) < 0) {
+  if (Read(fp, ptr, static_cast<long>(offset & LONG_MAX), size) < 0) {
     free(ptr);
     return nullptr;
   }
@@ -100,7 +100,8 @@ bool FindMainSymbolFromEhdr(FILE* fp, Ehdr* ehdr) {
   rewind(fp);
   Half shdr_tab_size = ehdr->e_shentsize * ehdr->e_shnum;
   Shdr shdr_tab[shdr_tab_size];
-  if (Read(fp, &shdr_tab, ehdr->e_shoff, shdr_tab_size) < 0)
+  if (Read(fp, &shdr_tab, static_cast<long>(ehdr->e_shoff & LONG_MAX),
+      shdr_tab_size) < 0)
     return false;
 
   if (ehdr->e_shstrndx >= shdr_tab_size)