ソースを参照

Works with verifier - memset is definitely causing the issue. TODO: Fix this by renaming the original memset to something else and then calling it through the function pointer.

dettanym 5 年 前
コミット
236f9a1087
2 ファイル変更6 行追加4 行削除
  1. 1 1
      sdk/tlibc/Makefile
  2. 5 3
      sdk/tlibc/string/memset_s.c

+ 1 - 1
sdk/tlibc/Makefile

@@ -52,7 +52,7 @@ LIBC_C_SRCS := $(wildcard gen/*.c gdtoa/*.c locale/*.c stdlib/*.c string/*.c std
 endif
 LIBC_C_SRCS := $(filter-out stdlib/malloc.c,$(LIBC_C_SRCS))
 
-LIBC_C_SRCS := string/consttime_memequal.c gen/errno.c
+LIBC_C_SRCS := string/consttime_memequal.c string/memset_s.c  gen/errno.c
 
 LIBC_CPP_SRCS := $(wildcard gen/*.cpp) tstdc_version.cpp
 LIBC_ASM_SRCS := $(wildcard gen/*.S)

+ 5 - 3
sdk/tlibc/string/memset_s.c

@@ -50,7 +50,7 @@ static void * (* const volatile __memset_vp)(void *, int, size_t)
 errno_t
 memset_s(void *s, size_t smax, int c, size_t n)
 {
-    errno_t err = 0;
+/*    errno_t err = 0;
 
     if (s == NULL) {
         err = EINVAL;
@@ -69,7 +69,7 @@ memset_s(void *s, size_t smax, int c, size_t n)
         n = smax;
     }
 
-    /* Calling through a volatile pointer should never be optimised away. */
+    // Calling through a volatile pointer should never be optimised away. 
     (*__memset_vp)(s, c, n);
 
     out:
@@ -77,7 +77,9 @@ memset_s(void *s, size_t smax, int c, size_t n)
         return 0;
     else {
         errno = err;
-        /* XXX call runtime-constraint handler */
+        // XXX call runtime-constraint handler 
         return err;
     }
+*/
+	return 0;
 }