--- udns-0.0.9.orig/rblcheck.c 2007-01-10 04:52:51.000000000 +0200 +++ udns-0.0.9/rblcheck.c 2007-09-01 17:00:58.021629838 +0300 @@ -98,6 +98,8 @@ static void *ecalloc(int size, int cnt) } static void addzone(const char *zone) { + char *tmp; + if (nzones >= nzalloc) { const char **zs = (const char**)ecalloc(sizeof(char*), (nzalloc += 16)); if (zones) { @@ -106,7 +108,9 @@ static void addzone(const char *zone) { } zones = zs; } - zones[nzones++] = zone; + tmp = strdup(zone); + if (!tmp) error(1, "out of memory"); + zones[nzones++] = tmp; } static int addzonefile(const char *fname) {