aboutsummaryrefslogtreecommitdiff
path: root/mfd
diff options
context:
space:
mode:
Diffstat (limited to 'mfd')
-rw-r--r--mfd/bi_dns.m41
-rw-r--r--mfd/prog.c2
2 files changed, 3 insertions, 0 deletions
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
@@ -128,12 +128,13 @@ MF_DEFUN(dns_getname, STRING, STRING ipstr)
for (ncount = 0; ncount < NELEMS(names) && names[ncount];
ncount++);
qsort(names, ncount, sizeof names[0], hostname_cmp);
+ MF_OBSTACK_BEGIN();
for (i = 0; i < ncount; i++) {
if (i > 0)
MF_OBSTACK_1GROW(' ');
MF_OBSTACK_GROW(names[i]);
}
MF_OBSTACK_1GROW(0);
diff --git a/mfd/prog.c b/mfd/prog.c
index 17c2464b..a2671db8 100644
--- a/mfd/prog.c
+++ b/mfd/prog.c
@@ -488,12 +488,14 @@ runtime_stack_trace(eval_environ_t env)
base = (size_t) env->dataseg[base + 1] + base + 1) {
int i;
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;
} else {
name = "(in catch)";
pc -= 3;

Return to:

Send suggestions and report system problems to the System administrator.