diff --git a/CHANGES b/CHANGES index f2590681..27d501d0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +0.98.40 +* fix (?) bug in outobj.c - every 256th "extern" caused Nasm crash + 0.98.39 ------- * fix buffer overflow diff --git a/output/outobj.c b/output/outobj.c index d1464fc0..84a7bcd5 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -1172,7 +1172,7 @@ static void obj_write_fixup(ObjRecord * orp, int bytes, else { long i = seg / 2; struct ExtBack *eb = ebhead; - while (i > EXT_BLKSIZ) { + while (i >= EXT_BLKSIZ) { if (eb) eb = eb->next; else @@ -1231,7 +1231,7 @@ static void obj_write_fixup(ObjRecord * orp, int bytes, else { long i = wrt / 2; struct ExtBack *eb = ebhead; - while (i > EXT_BLKSIZ) { + while (i >= EXT_BLKSIZ) { if (eb) eb = eb->next; else @@ -1766,7 +1766,7 @@ static long obj_segbase(long segment) struct ExtBack *eb = ebhead; struct External *e; - while (i > EXT_BLKSIZ) { + while (i >= EXT_BLKSIZ) { if (eb) eb = eb->next; else