diff --git a/bin/tests/dst/t_dst.c b/bin/tests/dst/t_dst.c index 5416c77e68..896f77b45e 100644 --- a/bin/tests/dst/t_dst.c +++ b/bin/tests/dst/t_dst.c @@ -678,13 +678,13 @@ sig_fromfile(char *path, isc_buffer_t *iscbuf) { --len; continue; } else if (len < 2U) - return (1); + goto err; if (('0' <= *p) && (*p <= '9')) val = *p - '0'; else if (('A' <= *p) && (*p <= 'F')) val = *p - 'A' + 10; else - return (1); + goto err; ++p; val <<= 4; --len; @@ -693,13 +693,17 @@ sig_fromfile(char *path, isc_buffer_t *iscbuf) { else if (('A' <= *p) && (*p <= 'F')) val |= (*p - 'A' + 10); else - return (1); + goto err; ++p; --len; isc_buffer_putuint8(iscbuf, val); } (void) free(buf); return(0); + + err: + (void) free(buf); + return (1); } static void