diff options
author | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-10-02 01:21:00 +0400 |
---|---|---|
committer | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-10-27 21:41:11 +0400 |
commit | 2c157002f2dd9bd4109fe23848ee12dc8182a12c (patch) | |
tree | 591a75354df54e0a2ce6e5670093c1728196b7d1 /output | |
parent | 71787fda1b4c60201a9d83a14e325f30a99100a5 (diff) | |
download | nasm-2c157002f2dd9bd4109fe23848ee12dc8182a12c.tar.gz nasm-2c157002f2dd9bd4109fe23848ee12dc8182a12c.tar.bz2 nasm-2c157002f2dd9bd4109fe23848ee12dc8182a12c.zip |
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>
Diffstat (limited to 'output')
-rw-r--r-- | output/outieee.c | 4 | ||||
-rw-r--r-- | output/outobj.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/output/outieee.c b/output/outieee.c index c6923fd..a8f6901 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 e62bc3f..b07a7e4 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; } |