summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2010-10-02 01:21:00 +0400
committerCyrill Gorcunov <gorcunov@gmail.com>2010-10-27 21:41:11 +0400
commit2c157002f2dd9bd4109fe23848ee12dc8182a12c (patch)
tree591a75354df54e0a2ce6e5670093c1728196b7d1
parent71787fda1b4c60201a9d83a14e325f30a99100a5 (diff)
downloadnasm-2c157002f2dd9bd4109fe23848ee12dc8182a12c.tar.gz
BR3079550: NASM crash on run-time for OMF output format
We could have accessed malloc'ed data on external symbols in obj and ieee output formats. Fix it by using nasm_zalloc. Reported-by: Jiri Malak Patch-by: Jiri Malak Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-rw-r--r--output/outieee.c4
-rw-r--r--output/outobj.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/output/outieee.c b/output/outieee.c
index c6923fd4..a8f6901c 100644
--- a/output/outieee.c
+++ b/output/outieee.c
@@ -372,7 +372,7 @@ static void ieee_deflabel(char *name, int32_t segment,
i = segment / 2;
eb = ebhead;
if (!eb) {
- eb = *ebtail = nasm_malloc(sizeof(*eb));
+ eb = *ebtail = nasm_zalloc(sizeof(*eb));
eb->next = NULL;
ebtail = &eb->next;
}
@@ -380,7 +380,7 @@ static void ieee_deflabel(char *name, int32_t segment,
if (eb && eb->next)
eb = eb->next;
else {
- eb = *ebtail = nasm_malloc(sizeof(*eb));
+ eb = *ebtail = nasm_zalloc(sizeof(*eb));
eb->next = NULL;
ebtail = &eb->next;
}
diff --git a/output/outobj.c b/output/outobj.c
index e62bc3f0..b07a7e49 100644
--- a/output/outobj.c
+++ b/output/outobj.c
@@ -993,7 +993,7 @@ static void obj_deflabel(char *name, int32_t segment,
i = segment / 2;
eb = ebhead;
if (!eb) {
- eb = *ebtail = nasm_malloc(sizeof(*eb));
+ eb = *ebtail = nasm_zalloc(sizeof(*eb));
eb->next = NULL;
ebtail = &eb->next;
}
@@ -1001,7 +1001,7 @@ static void obj_deflabel(char *name, int32_t segment,
if (eb && eb->next)
eb = eb->next;
else {
- eb = *ebtail = nasm_malloc(sizeof(*eb));
+ eb = *ebtail = nasm_zalloc(sizeof(*eb));
eb->next = NULL;
ebtail = &eb->next;
}