From 5be37dcba1950fe6d917c18c9bd1983cb0f17185 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Tue, 30 Jun 2009 00:29:30 +0300 Subject: Bugfix. * mfd/bi_dns.m4 (dns_getname): Missed call to MF_OBSTACK_BEGIN. * mfd/prog.c (runtime_stack_trace): Prevent coredump on arriving to pc == 0. --- mfd/bi_dns.m4 | 1 + mfd/prog.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mfd/bi_dns.m4 b/mfd/bi_dns.m4 index a3a6ef13..6d071e7e 100644 --- a/mfd/bi_dns.m4 +++ b/mfd/bi_dns.m4 @@ -131,6 +131,7 @@ MF_DEFUN(dns_getname, STRING, STRING ipstr) qsort(names, ncount, sizeof names[0], hostname_cmp); + MF_OBSTACK_BEGIN(); for (i = 0; i < ncount; i++) { if (i > 0) MF_OBSTACK_1GROW(' '); diff --git a/mfd/prog.c b/mfd/prog.c index 17c2464b..a2671db8 100644 --- a/mfd/prog.c +++ b/mfd/prog.c @@ -490,7 +490,9 @@ runtime_stack_trace(eval_environ_t env) prog_counter_t pc = (prog_counter_t)env->dataseg[base + 2] - 1; char *name; struct locus *ploc = NULL, loc; - + + if (pc < 2) + break; /*FIXME*/ if (prog[pc-2] == instr_funcall) { name = (char*)(env->dataseg + (size_t) prog[pc-1]); pc -= 2; -- cgit v1.2.1