Fixed missing memset in release build
authorLukas Krickl <lukas@krickl.dev>
Thu, 14 Dec 2023 07:16:58 +0000 (08:16 +0100)
committerLukas Krickl <lukas@krickl.dev>
Thu, 14 Dec 2023 07:16:58 +0000 (08:16 +0100)
makefile
src/ulas.c

index d9d7f0be6983a5697dfa1ca7362b598dba44dd51..18e75cbf3e11ed63d1ad66eeef7b36caa53dd3c2 100644 (file)
--- a/makefile
+++ b/makefile
@@ -27,6 +27,9 @@ OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
 
 all: bin test
 
+release: 
+       make DBGCFLAGS="" DBGLDFLAGS=""
+
 $(ODIR)/%.o: src/%.c include/*.h
        mkdir -p $(@D)
        $(CC) -c -o $@ $< $(CFLAGS) $(LDFLAGS)
index 18bb0db309e167dada640e60081df2c1c03eed67..b622d4d59d9b95f2f69f64140abcd802fa00d3c7 100644 (file)
@@ -266,6 +266,7 @@ int ulas_symbolset(const char *cname, int scope, struct ulas_tok tok,
                    int constant) {
   // remove : from name
   char name[ULAS_SYMNAMEMAX];
+  memset(name, 0, ULAS_SYMNAMEMAX);
   long len = strlen(cname);
   assert(len < ULAS_SYMNAMEMAX);
   strncpy(name, cname, len);
@@ -293,7 +294,7 @@ int ulas_symbolset(const char *cname, int scope, struct ulas_tok tok,
 
   if (!existing) {
     // def new symbol
-    struct ulas_sym new_sym = {strdup(name), tok, scope, ulas.pass, constant};
+    struct ulas_sym new_sym = {strndup(name, len), tok, scope, ulas.pass, constant};
     ulas_symbufpush(&ulas.syms, new_sym);
     
     rc = ulas_symbolout(ulassymout, &new_sym);