On Mon, 08 Oct 2012, rustyBSD wrote: > Le 07/10/2012 14:58, rustyBSD a ?crit : > > On 10/07/12 13:41, Theo de Raadt wrote: > >> If you type "unbound" into google, you will see that > >> this is upstream code that is incorporated into OpenBSD. > >> > >> Therefore, you should really contact that project. > > Already done > > > > > https://www.nlnetlabs.nl/bugs-script/show_bug.cgi?id=473 > Fixed in trunk. > > Maybe update OpenBSD's code ?
Here's a diff for our tree: Index: drill/drill_util.c =================================================================== RCS file: /cvs/src/usr.sbin/unbound/ldns/drill/drill_util.c,v retrieving revision 1.1.1.2 diff -u -p -r1.1.1.2 drill_util.c --- drill/drill_util.c 23 Aug 2012 22:28:45 -0000 1.1.1.2 +++ drill/drill_util.c 8 Oct 2012 11:53:27 -0000 @@ -13,7 +13,7 @@ #include <errno.h> -static size_t +static int read_line(FILE *input, char *line, size_t len) { size_t i; @@ -71,6 +71,7 @@ read_key_file(const char *filename, ldns } } printf(";; Number of trusted keys: %d\n", key_count); + fclose(input_file); if (key_count > 0) { return LDNS_STATUS_OK; } else { Index: drill/work.c =================================================================== RCS file: /cvs/src/usr.sbin/unbound/ldns/drill/work.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 work.c --- drill/work.c 26 Mar 2012 18:08:26 -0000 1.1.1.1 +++ drill/work.c 8 Oct 2012 11:53:27 -0000 @@ -177,21 +177,7 @@ read_hex_buffer(char *filename) uint8_t *wire; size_t wiresize; ldns_buffer *result_buffer = NULL; - - FILE *fp = NULL; - - if (strncmp(filename, "-", 2) != 0) { - fp = fopen(filename, "r"); - } else { - fp = stdin; - } - - if (fp == NULL) { - perror(""); - warning("Unable to open %s", filename); - return NULL; - } - + wire = xmalloc(LDNS_MAX_PACKETLEN); wiresize = packetbuffromfile(filename, wire); @@ -199,7 +185,7 @@ read_hex_buffer(char *filename) result_buffer = LDNS_MALLOC(ldns_buffer); ldns_buffer_new_frm_data(result_buffer, wire, wiresize); ldns_buffer_set_position(result_buffer, ldns_buffer_capacity(result_buffer)); - + xfree(wire); return result_buffer; }