From 062b88c99162ac173dcf7ad5f053b190dc1459dc Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 15:26:25 +0200 Subject: [PATCH 01/14] Bumb version --- ChangeLog | 2 +- configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a0226b71..b1c7e57a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -* 2017-0?-??: Version 1.1.3 +* 2017-09-01: Version 1.1.3 * No annotations with the output of getdns_query anymore, unless -V option is given to increase verbosity Thanks Ollivier Robert diff --git a/configure.ac b/configure.ac index 2156085e..4eea1694 100644 --- a/configure.ac +++ b/configure.ac @@ -41,7 +41,7 @@ AC_INIT([getdns], [1.1.3], [users@getdnsapi.net], [], [https://getdnsapi.net]) # Dont forget to put a dash in front of the release candidate!!! # That is how it is done with semantic versioning! # -AC_SUBST(RELEASE_CANDIDATE, [-rc1]) +AC_SUBST(RELEASE_CANDIDATE, []) # Set current date from system if not set AC_ARG_WITH([current-date], @@ -51,7 +51,7 @@ AC_ARG_WITH([current-date], [CURRENT_DATE="`date -u +%Y-%m-%dT%H:%M:%SZ`"]) AC_SUBST(GETDNS_VERSION, ["AC_PACKAGE_VERSION$RELEASE_CANDIDATE"]) -AC_SUBST(GETDNS_NUMERIC_VERSION, [0x010102c1]) +AC_SUBST(GETDNS_NUMERIC_VERSION, [0x01010300]) AC_SUBST(API_VERSION, ["December 2015"]) AC_SUBST(API_NUMERIC_VERSION, [0x07df0c00]) GETDNS_COMPILATION_COMMENT="AC_PACKAGE_NAME $GETDNS_VERSION configured on $CURRENT_DATE for the $API_VERSION version of the API" From 98379bbd388a2d15546359c9ec1e944c2f6b4aa2 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 16:10:56 +0200 Subject: [PATCH 02/14] Add RR type DOA Without rdata yet, just to pass unit tests --- src/const-info.c | 1 + src/getdns/getdns.h.in | 1 + src/gldns/rrdef.h | 1 + src/rr-dict.c | 9 +++++---- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/const-info.c b/src/const-info.c index d2b5a007..776e6795 100644 --- a/src/const-info.c +++ b/src/const-info.c @@ -272,6 +272,7 @@ static struct const_name_info consts_name_info[] = { { "GETDNS_RRTYPE_DLV", 32769 }, { "GETDNS_RRTYPE_DNAME", 39 }, { "GETDNS_RRTYPE_DNSKEY", 48 }, + { "GETDNS_RRTYPE_DOA", 259 }, { "GETDNS_RRTYPE_DS", 43 }, { "GETDNS_RRTYPE_EID", 31 }, { "GETDNS_RRTYPE_GID", 102 }, diff --git a/src/getdns/getdns.h.in b/src/getdns/getdns.h.in index feba62a1..4732a4a3 100644 --- a/src/getdns/getdns.h.in +++ b/src/getdns/getdns.h.in @@ -437,6 +437,7 @@ typedef enum getdns_callback_type_t { #define GETDNS_RRTYPE_URI 256 #define GETDNS_RRTYPE_CAA 257 #define GETDNS_RRTYPE_AVC 258 +#define GETDNS_RRTYPE_DOA 259 #define GETDNS_RRTYPE_TA 32768 #define GETDNS_RRTYPE_DLV 32769 /** @} diff --git a/src/gldns/rrdef.h b/src/gldns/rrdef.h index b5975aa1..3db78fe0 100644 --- a/src/gldns/rrdef.h +++ b/src/gldns/rrdef.h @@ -227,6 +227,7 @@ enum gldns_enum_rr_type GLDNS_RR_TYPE_URI = 256, /* RFC 7553 */ GLDNS_RR_TYPE_CAA = 257, /* RFC 6844 */ GLDNS_RR_TYPE_AVC = 258, + GLDNS_RR_TYPE_DOA = 259, /** DNSSEC Trust Authorities */ GLDNS_RR_TYPE_TA = 32768, diff --git a/src/rr-dict.c b/src/rr-dict.c index 1206ed53..ab0c2b82 100644 --- a/src/rr-dict.c +++ b/src/rr-dict.c @@ -920,7 +920,8 @@ static _getdns_rr_def _getdns_rr_defs[] = { { NULL, NULL, 0 }, { "URI", uri_rdata, ALEN( uri_rdata) }, /* 256 - */ { "CAA", caa_rdata, ALEN( caa_rdata) }, - { "AVC", txt_rdata, ALEN( txt_rdata) }, /* - 258 */ + { "AVC", txt_rdata, ALEN( txt_rdata) }, + { "DOA", UNKNOWN_RDATA, 0 }, /* - 259 */ { "TA", ds_rdata, ALEN( ds_rdata) }, /* 32768 */ { "DLV", dlv_rdata, ALEN( dlv_rdata) } /* 32769 */ }; @@ -928,12 +929,12 @@ static _getdns_rr_def _getdns_rr_defs[] = { const _getdns_rr_def * _getdns_rr_def_lookup(uint16_t rr_type) { - if (rr_type <= 258) + if (rr_type <= 259) return &_getdns_rr_defs[rr_type]; else if (rr_type == 32768) - return &_getdns_rr_defs[259]; - else if (rr_type == 32769) return &_getdns_rr_defs[260]; + else if (rr_type == 32769) + return &_getdns_rr_defs[261]; return _getdns_rr_defs; } From 5c8765fefe6a9a989c73cc8b4b391bc077a9a149 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 16:23:26 +0200 Subject: [PATCH 03/14] No variable initializations in for loops --- src/stub.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/stub.c b/src/stub.c index de8121dd..dd084164 100644 --- a/src/stub.c +++ b/src/stub.c @@ -2067,8 +2067,10 @@ upstream_find_for_netreq(getdns_network_req *netreq) { int fd = -1; getdns_upstream *upstream; - for (size_t i = netreq->transport_current; - i < netreq->transport_count; i++) { + size_t i; + + for (i = netreq->transport_current; + i < netreq->transport_count; i++) { upstream = upstream_find_for_transport(netreq, netreq->transports[i], &fd); From 70ec5ea4d059f8ea94809788af2c5e010ab88f59 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 16:34:06 +0200 Subject: [PATCH 04/14] Some more for loop initializations --- src/mdns.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/mdns.c b/src/mdns.c index 56ce7013..073c48cb 100644 --- a/src/mdns.c +++ b/src/mdns.c @@ -238,7 +238,8 @@ mdns_util_canonical_flags_and_name(uint8_t *message, int message_length, } else { - for (int i = 0; i < nb_octets_to_copy; i++) + int i; + for (i = 0; i < nb_octets_to_copy; i++) { buffer[buffer_index++] = message[current_index++]; } @@ -702,6 +703,7 @@ mdns_update_cache_ttl_and_prune(struct getdns_context *context, int current_hole_index = 0; int record_name_length = 0; int record_ttl_index = 0; + int i; /* * Skip the query @@ -716,7 +718,7 @@ mdns_update_cache_ttl_and_prune(struct getdns_context *context, /* * Examine each record */ - for (int i = 0; i < nb_answers; i++) + for (i = 0; i < nb_answers; i++) { record_name_length = mdns_util_skip_name(old_record + answer_index); record_ttl_index = answer_index + record_name_length + 2 + 2; @@ -1489,8 +1491,9 @@ static getdns_return_t mdns_delayed_network_init(struct getdns_context *context) } else { + int i; /* TODO: launch the receive loops */ - for (int i = 0; i < 2; i++) + for (i = 0; i < 2; i++) { GETDNS_CLEAR_EVENT(context->extension, &context->mdns_connection[i].event); GETDNS_SCHEDULE_EVENT( @@ -1503,7 +1506,8 @@ static getdns_return_t mdns_delayed_network_init(struct getdns_context *context) if (ret != 0) { - for (int i = 0; i < 2; i++) + int i; + for (i = 0; i < 2; i++) { if (context->mdns_connection[i].fd != -1) { @@ -1647,7 +1651,8 @@ void _getdns_mdns_context_destroy(struct getdns_context *context) /* Close the connections */ if (context->mdns_connection != NULL) { - for (int i = 0; i < context->mdns_connection_nb; i++) + int i; + for (i = 0; i < context->mdns_connection_nb; i++) { /* suppress the receive event */ GETDNS_CLEAR_EVENT(context->extension, &context->mdns_connection[i].event); From bf2396822611208a1cb8e1ec8988af0d4779c234 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 16:50:31 +0200 Subject: [PATCH 05/14] Final for loop initializations elimination --- src/context.c | 18 +++++++++++++----- src/test/tests_stub_async.c | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/context.c b/src/context.c index 49fc7859..7d9733e4 100644 --- a/src/context.c +++ b/src/context.c @@ -1116,7 +1116,8 @@ set_os_defaults_windows(struct getdns_context *context) ptr = &info->DnsServerList; *domain = 0; while (ptr) { - for (size_t i = 0; i < GETDNS_UPSTREAM_TRANSPORTS; i++) { + size_t i; + for (i = 0; i < GETDNS_UPSTREAM_TRANSPORTS; i++) { char *port_str = getdns_port_str_array[i]; if ((s = getaddrinfo(ptr->IpAddress.String, port_str, &hints, &result))) continue; @@ -1209,6 +1210,8 @@ set_os_defaults(struct getdns_context *context) *domain = 0; while (fgets(line, (int)sizeof(line), in)) { + size_t i; + line[sizeof(line)-1] = 0; /* parse = line + strspn(line, " \t"); */ /* No leading whitespace */ parse = line; @@ -1248,7 +1251,7 @@ set_os_defaults(struct getdns_context *context) token = parse + strcspn(parse, " \t\r\n"); *token = 0; - for (size_t i = 0; i < GETDNS_UPSTREAM_TRANSPORTS; i++) { + for (i = 0; i < GETDNS_UPSTREAM_TRANSPORTS; i++) { char *port_str = getdns_port_str_array[i]; if ((s = getaddrinfo(parse, port_str, &hints, &result))) continue; @@ -2001,6 +2004,9 @@ getdns_set_base_dns_transports( static getdns_return_t set_ub_dns_transport(struct getdns_context* context) { + int fallback; + size_t i; + /* These mappings are not exact because Unbound is configured differently, so just map as close as possible. Not all options can be supported.*/ switch (context->dns_transports[0]) { @@ -2020,8 +2026,8 @@ set_ub_dns_transport(struct getdns_context* context) { set_ub_string_opt(context, "do-udp:", "no"); set_ub_string_opt(context, "do-tcp:", "yes"); /* Find out if there is a fallback available. */ - int fallback = 0; - for (size_t i = 1; i < context->dns_transport_count; i++) { + fallback = 0; + for (i = 1; i < context->dns_transport_count; i++) { if (context->dns_transports[i] == GETDNS_TRANSPORT_TCP) { fallback = 1; break; @@ -2693,6 +2699,8 @@ getdns_context_set_upstream_recursive_servers(struct getdns_context *context, uint8_t tsig_dname_spc[256], *tsig_dname; size_t tsig_dname_len; + size_t j + if ((r = getdns_list_get_dict(upstream_list, i, &dict))) { dict = NULL; @@ -2814,7 +2822,7 @@ getdns_context_set_upstream_recursive_servers(struct getdns_context *context, */ /* Loop to create upstreams as needed*/ - for (size_t j = 0; j < GETDNS_UPSTREAM_TRANSPORTS; j++) { + for (j = 0; j < GETDNS_UPSTREAM_TRANSPORTS; j++) { uint32_t port; struct addrinfo *ai; port = getdns_port_array[j]; diff --git a/src/test/tests_stub_async.c b/src/test/tests_stub_async.c index 79a8029c..6d3f78ca 100644 --- a/src/test/tests_stub_async.c +++ b/src/test/tests_stub_async.c @@ -155,7 +155,8 @@ main(int argc, char** argv) return_value); return (GETDNS_RETURN_GENERIC_ERROR); } - for (size_t i = 0; i < transport_count; i++) { + size_t i; + for (i = 0; i < transport_count; i++) { fprintf(stderr, "Transport %d is %d\n", (int)i, get_transport_list[i]); } free(get_transport_list); From 21f538f60c144803c38e3758f6e1ad1b957ed18e Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 1 Sep 2017 17:00:34 +0200 Subject: [PATCH 06/14] Forgot ; --- src/context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/context.c b/src/context.c index 7d9733e4..76ee766a 100644 --- a/src/context.c +++ b/src/context.c @@ -2699,7 +2699,7 @@ getdns_context_set_upstream_recursive_servers(struct getdns_context *context, uint8_t tsig_dname_spc[256], *tsig_dname; size_t tsig_dname_len; - size_t j + size_t j; if ((r = getdns_list_get_dict(upstream_list, i, &dict))) { dict = NULL; From bf31b2f7db864a51d0dd89450358e6467fab4166 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 11:20:21 +0200 Subject: [PATCH 07/14] Collect report from static analysis --- .travis.yml | 3 ++- .../400-static-analysis | 27 +++++++++++++++++++ .../400-static-analysis.pub | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/test/tpkg/400-static-analysis.tpkg/400-static-analysis create mode 100644 src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.pub diff --git a/.travis.yml b/.travis.yml index 98b98d95..a809e5e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,8 @@ addons: - valgrind - clang - wget + - openssh-client script: - mkdir tests - cd tests - - ../src/test/tpkg/run-all.sh + - ../src/test/tpkg/run-one.sh 400-static-analysis diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis new file mode 100644 index 00000000..827901c6 --- /dev/null +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA632SYifMR8ooMWtBsKTmR1rb7yQQngrRjNf2CCmPKIXwYhq8 +KMyKxuf+nTvTSNJn9/kl3V9+rOkIOnlxutCxogfpAc1CK8w8OXPC6HGV4qKHgMFG +w7O/l7g9U9CD2UmcBVC3Netu16SGXotxq9udIx/hLBNW1ybE2I3iGGgf7dOf1r3X +TDsYV9AbeqWKBiaRZyZ7GPESoRNBFcWXsXXxtpLZ6Bv2ulTBCMVzJqQqyUMn3Fi+ +bm8UeDii6u09mNqbkoEPjMKCZDV3maxyLflwbmrYY8spOFfl9+bSkNgcF4HNpjPQ +LVzNTNfAu8tFqcbu+Hyvz/hTv26POIQvHYMDIwIDAQABAoIBAQDnHhbMvsJ+sqk/ +10RhWXWoEkRIL90fPv7qfAm7eQ5Hdyy1HAgPArAxBv+c0VpL3jSr6pp+6XopuYuZ +2BcGgkvT+m90lT6cPZXdzP89ojy4cUsL0qTg7UjcXrXRzJOabePyU4V8JdRjT9WQ +dMrbIG7YSjF0UIaqIiKPZrC/w3GStn3SqW5z9tWmkAvdOKa1oB+D2PGTXbhjiz6N +LeHAe/TkAwCKUabq3SdU2EAQHPcJtK3LmcbnGE1QtSduuepzKeSh2PvM0lPXEP8/ +d1CGsmItnQQ4EnYsdTjILYFzatiJQnXgQv94aMku9PLWswKXAyGy2l21o32Apk0L +Iye04ewBAoGBAPtxcU3OrEEJ9BGuae1G8Z1ey0OyAajaK+Gl3rBuO3JLE+Y6J6Gr +IXCaW3acWRmIvD4/+/M3QpA+3dR7Zcs7CcyXiy5nhzYz7sK2Wm9IDxq1tSdSSpS5 +5BOF+oXTwOqYnng2J4Zfg9WL/kJy9YyI15BpYn80mmmWSy/maXRCNrubAoGBAO/C +Hiwkw8ktW/cFyHXYJJEOPrqqH0FFO85mjhJhrWvu94vz7ohF804xynHO9C1fbfux +++yUyfvIPxKPPLYy8M8wNTA3AZl17LMKE4oqbNjHO3q6S6rqB2pFs/eHa/g6xMUf +1mosMNeQNEvNZYr7uOMOeyy46QvlPQuS3ihLFaMZAoGBAJREh7B+3zoW2XIXq+S7 +wbuvayLG842S4O9VNORKjAlQVjKbNkVxuO1CSA7AERYqd/4pErOPcVPHjl0+Sn81 +mAipj+vUJnoC05bDmr4l+qogXesK7mmW1/PfPCPwAsETL9bo8BOffQjOXSbnzP2K +r7o7OlaSOT9r3XgoYSSp6sZjAoGBAN74VD8RYdLyEBjGlAqkHD2aVdQa6j41OM1W +qsGFfVZnQmgxTqAFDaSmwXLd2E9p9Eqi13rJVJ6HN8D23KtE7JaCarSQMziYZqyK +rmlL0zY28qXMIxqr0oGOmTOWCV8sqFn6pdjPiAyw2zGzrr92IhdnHD4XKQQbCI5+ +44PtcA3hAoGAR2sYrrEBEMeyLd2wYNT8PO5p6i/ZubXsB2095fwhmZj8g+c+KMiR +A5j+kQNOPgOy6THfOUEdfrynNuTOP5O7vDeMXScO/jSuQJhSk+VcCWlHObgYvEoT +S+Nw+bDLWb8k4hYrNWVTQwq4lPlJYWV6cpkj0DOFl1X26GUSWxhF0Qc= +-----END RSA PRIVATE KEY----- diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.pub b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.pub new file mode 100644 index 00000000..51cce9ae --- /dev/null +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrfZJiJ8xHyigxa0GwpOZHWtvvJBCeCtGM1/YIKY8ohfBiGrwozIrG5/6dO9NI0mf3+SXdX36s6Qg6eXG60LGiB+kBzUIrzDw5c8LocZXiooeAwUbDs7+XuD1T0IPZSZwFULc1627XpIZei3Gr250jH+EsE1bXJsTYjeIYaB/t05/WvddMOxhX0Bt6pYoGJpFnJnsY8RKhE0EVxZexdfG2ktnoG/a6VMEIxXMmpCrJQyfcWL5ubxR4OKLq7T2Y2puSgQ+MwoJkNXeZrHIt+XBuathjyyk4V+X35tKQ2BwXgc2mM9AtXM1M18C7y0Wpxu74fK/P+FO/bo84hC8dgwMj willem@bonobo From 2b07f221c4cecd729fc2563c7d41169376412430 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 11:22:01 +0200 Subject: [PATCH 08/14] And actually copy over results --- src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test index 132a9eff..3f20de67 100644 --- a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test @@ -6,3 +6,4 @@ cd "${BUILDDIR}/build-static-analysis" scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything +scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r ../scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` From d340305dcc7bf35f0099e9a20c0c90b046d201b4 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 11:38:20 +0200 Subject: [PATCH 09/14] Show tpkg execution live --- .../400-static-analysis.test | 7 +++++- src/test/tpkg/tpkg | 22 +++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test index 3f20de67..f68b2bbe 100644 --- a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test @@ -6,4 +6,9 @@ cd "${BUILDDIR}/build-static-analysis" scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything -scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r ../scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` +cd .. +pwd +echo scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` +scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` +echo Copy done + diff --git a/src/test/tpkg/tpkg b/src/test/tpkg/tpkg index 3e6deee0..62d81a16 100755 --- a/src/test/tpkg/tpkg +++ b/src/test/tpkg/tpkg @@ -89,9 +89,9 @@ function epoch() { function post() { if [ -f "${dsc_post}" ]; then err "[log] Executing post script: ${dsc_post} ${TPKG_ARGS}" - echo "--------- Start Post Output ------------------ " >> result.$dsc_basename - ${SHELL} ${dsc_post} ${TPKG_ARGS} >> result.$dsc_basename - echo "----------- End Post Output ------------------ " >> result.$dsc_basename + echo "--------- Start Post Output ------------------ " | tee -a result.$dsc_basename + ${SHELL} ${dsc_post} ${TPKG_ARGS} | tee -a result.$dsc_basename + echo "----------- End Post Output ------------------ " | tee -a result.$dsc_basename result=$? if [ $result -ne 0 ]; then err "[warning] Post-script executed with errors: $result." @@ -102,9 +102,9 @@ function post() { function pre() { if [ -f "${dsc_pre}" ]; then err "[log] Executing pre script: ${dsc_pre} ${TPKG_ARGS}" - echo "--------- Start Pre Output ------------------- " >> result.$dsc_basename - ${SHELL} ${dsc_pre} ${TPKG_ARGS} >> result.$dsc_basename - echo "----------- End Pre Output ------------------- " >> result.$dsc_basename + echo "--------- Start Pre Output ------------------- " | tee -a result.$dsc_basename + ${SHELL} ${dsc_pre} ${TPKG_ARGS} | tee -a result.$dsc_basename + echo "----------- End Pre Output ------------------- " | tee -a result.$dsc_basename result=$? if [ $result -ne 0 ]; then err "[warning] Pre-script executed with errors: $result." @@ -838,16 +838,16 @@ fi tpkg_log "Starting test: '$dsc_basename'" epoch # run before pre() -echo "BaseName: $dsc_basename" > result.$dsc_basename -echo "Description: $dsc_description" >> result.$dsc_basename -echo "DateRunStart: $epoch " >> result.$dsc_basename -echo "--------------- Test Output ------------------" >> result.$dsc_basename +echo "BaseName: $dsc_basename" | tee result.$dsc_basename +echo "Description: $dsc_description" | tee -a result.$dsc_basename +echo "DateRunStart: $epoch " | tee -a result.$dsc_basename +echo "--------------- Test Output ------------------" | tee -a result.$dsc_basename pre out "[log] Executing test" -( ${SHELL} $dsc_test ${TPKG_ARGS} 2>&1 ) >> result.$dsc_basename +( ${SHELL} $dsc_test ${TPKG_ARGS} 2>&1 ) | tee -a result.$dsc_basename test_result=$? epoch # would like to run after post, but that is not possible :-( if [ $test_result -ne 0 ]; then From f25ae850300db9706301143048244ab8cf0a3050 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 12:10:50 +0200 Subject: [PATCH 10/14] Get keys from correct position --- .../400-static-analysis.test | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test index f68b2bbe..4436c569 100644 --- a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test @@ -4,11 +4,8 @@ # use .tpkg.var.test for in test variable passing [ -f .tpkg.var.test ] && source .tpkg.var.test -cd "${BUILDDIR}/build-static-analysis" -scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything -cd .. -pwd -echo scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` -scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r scan-build-reports static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` -echo Copy done - +( + cd "${BUILDDIR}/build-static-analysis" + scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything +) +scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r "${BUILDDIR}/scan-build-reports" static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` From 084286513fdcc43a87e428b3b33bd3d5840aa75c Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 12:18:57 +0200 Subject: [PATCH 11/14] Fix permissions --- src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test index 4436c569..ef842b5b 100644 --- a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test @@ -8,4 +8,5 @@ cd "${BUILDDIR}/build-static-analysis" scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything ) +chmod 0400 ./400-static-analysis scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r "${BUILDDIR}/scan-build-reports" static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` From 48209a038c8cc82053afd473389a6141c5b82fd8 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Sat, 2 Sep 2017 12:47:04 +0200 Subject: [PATCH 12/14] Fix things that came out of static analysis --- src/list.c | 4 ++-- .../400-static-analysis.tpkg/400-static-analysis.test | 8 +++++--- stubby | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/list.c b/src/list.c index 7a7d3e38..c7bd476b 100644 --- a/src/list.c +++ b/src/list.c @@ -328,8 +328,8 @@ _getdns_list_copy(const struct getdns_list * srclist, srclist->mf.mf.ext.realloc, srclist->mf.mf.ext.free ); - if (!dstlist) - return GETDNS_RETURN_GENERIC_ERROR; + if (!*dstlist) + return GETDNS_RETURN_MEMORY_ERROR; for (i = 0; i < srclist->numinuse; i++) { switch (srclist->items[i].dtype) { diff --git a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test index ef842b5b..a08a7abb 100644 --- a/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test +++ b/src/test/tpkg/400-static-analysis.tpkg/400-static-analysis.test @@ -7,6 +7,8 @@ ( cd "${BUILDDIR}/build-static-analysis" scan-build -o ../scan-build-reports -v --status-bugs make -j 4 everything -) -chmod 0400 ./400-static-analysis -scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r "${BUILDDIR}/scan-build-reports" static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` +) || ( + chmod 0400 ./400-static-analysis + scp -o "StrictHostKeyChecking no" -i ./400-static-analysis -r "${BUILDDIR}/scan-build-reports" static-analysis@getdnsapi.net:scan-build-resports-$$-`date +%s` + false + ) diff --git a/stubby b/stubby index 499a82f5..61142309 160000 --- a/stubby +++ b/stubby @@ -1 +1 @@ -Subproject commit 499a82f55579bbba754cd620f88b20da6a167929 +Subproject commit 6114230904d9413514d521358ca7956aac99e822 From d2c258158f4faf578be1198c9851b68969980ffa Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 4 Sep 2017 10:04:17 +0200 Subject: [PATCH 13/14] Flag for live logging --- .travis.yml | 3 ++- src/test/tpkg/tpkg | 36 ++++++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index a809e5e3..3d2f5b1a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,4 +18,5 @@ addons: script: - mkdir tests - cd tests - - ../src/test/tpkg/run-one.sh 400-static-analysis +# - ../src/test/tpkg/run-all.sh + - ../src/test/tpkg/run-one.sh 400-static-analysis -V diff --git a/src/test/tpkg/tpkg b/src/test/tpkg/tpkg index 62d81a16..713adcfb 100755 --- a/src/test/tpkg/tpkg +++ b/src/test/tpkg/tpkg @@ -13,6 +13,7 @@ TPKG_BASE="." TPKG_ARGS="" TPKG_CURRENT=`pwd` TPKG_QUIET=0 # only output err() msgs +TPKG_VERBOSE=0 # Show live output of test execution TPKG_KEEP=0 # tpkg create doesn't remove dir/ TPKG_PASS=0 # how much must succeed TPKG_LOG=0 # don't log @@ -73,6 +74,14 @@ function out() { fi } +function write_result() { + if [[ $TPKG_VERBOSE -gt 0 ]]; then + tee -a $1 + else + cat >> $1 + fi +} + function epoch() { # make this sorta portable allthough not needed now epoch=0 @@ -89,9 +98,9 @@ function epoch() { function post() { if [ -f "${dsc_post}" ]; then err "[log] Executing post script: ${dsc_post} ${TPKG_ARGS}" - echo "--------- Start Post Output ------------------ " | tee -a result.$dsc_basename - ${SHELL} ${dsc_post} ${TPKG_ARGS} | tee -a result.$dsc_basename - echo "----------- End Post Output ------------------ " | tee -a result.$dsc_basename + echo "--------- Start Post Output ------------------ " | write_result result.$dsc_basename + ${SHELL} ${dsc_post} ${TPKG_ARGS} | write_result result.$dsc_basename + echo "----------- End Post Output ------------------ " | write_result result.$dsc_basename result=$? if [ $result -ne 0 ]; then err "[warning] Post-script executed with errors: $result." @@ -102,9 +111,9 @@ function post() { function pre() { if [ -f "${dsc_pre}" ]; then err "[log] Executing pre script: ${dsc_pre} ${TPKG_ARGS}" - echo "--------- Start Pre Output ------------------- " | tee -a result.$dsc_basename - ${SHELL} ${dsc_pre} ${TPKG_ARGS} | tee -a result.$dsc_basename - echo "----------- End Pre Output ------------------- " | tee -a result.$dsc_basename + echo "--------- Start Pre Output ------------------- " | write_result result.$dsc_basename + ${SHELL} ${dsc_pre} ${TPKG_ARGS} | write_result result.$dsc_basename + echo "----------- End Pre Output ------------------- " | write_result result.$dsc_basename result=$? if [ $result -ne 0 ]; then err "[warning] Pre-script executed with errors: $result." @@ -179,6 +188,7 @@ function usage() { out " -h\t\tshow this help" out " -v\t\tshow version" out " -q\t\tonly print errors" + out " -V\t\tshow live output when executing tests" out " -l\t\tlog test name to syslog when starting the test (using logger)" out " -p PRI\tlog using PRI as priority" out " -k\t\tdon't remove test directory when creating/executing a tpkg package" @@ -407,7 +417,7 @@ function extract_tpkg_to { # ### MAIN # check the arguments -while getopts ":vhkqb:a:n:lp:df" o +while getopts ":vhkqVb:a:n:lp:df" o do case "$o" in b) TPKG_BASE="$OPTARG";; h) usage; exit 0;; @@ -422,6 +432,7 @@ do case "$o" in fi ;; q) TPKG_QUIET=1;; + V) TPKG_VERBOSE=`expr $TPKG_VERBOSE + 1`;; k) TPKG_KEEP=1;; n) TPKG_PASS=$OPTARG if [ $TPKG_PASS -eq 0 ]; then @@ -838,16 +849,17 @@ fi tpkg_log "Starting test: '$dsc_basename'" epoch # run before pre() -echo "BaseName: $dsc_basename" | tee result.$dsc_basename -echo "Description: $dsc_description" | tee -a result.$dsc_basename -echo "DateRunStart: $epoch " | tee -a result.$dsc_basename -echo "--------------- Test Output ------------------" | tee -a result.$dsc_basename +: > result.$dsc_basename +echo "BaseName: $dsc_basename" | write_result result.$dsc_basename +echo "Description: $dsc_description" | write_result result.$dsc_basename +echo "DateRunStart: $epoch " | write_result result.$dsc_basename +echo "--------------- Test Output ------------------" | write_result result.$dsc_basename pre out "[log] Executing test" -( ${SHELL} $dsc_test ${TPKG_ARGS} 2>&1 ) | tee -a result.$dsc_basename +( ${SHELL} $dsc_test ${TPKG_ARGS} 2>&1 ) | write_result result.$dsc_basename test_result=$? epoch # would like to run after post, but that is not possible :-( if [ $test_result -ne 0 ]; then From d2c685f3ca70d6ed2c01a5801d48dcdbfd08745b Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 4 Sep 2017 10:21:23 +0200 Subject: [PATCH 14/14] Update ChangeLog, prepare for release today --- .travis.yml | 4 ++-- ChangeLog | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3d2f5b1a..d46dd307 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,5 +18,5 @@ addons: script: - mkdir tests - cd tests -# - ../src/test/tpkg/run-all.sh - - ../src/test/tpkg/run-one.sh 400-static-analysis -V + - ../src/test/tpkg/run-all.sh +# - ../src/test/tpkg/run-one.sh 400-static-analysis -V diff --git a/ChangeLog b/ChangeLog index b1c7e57a..dc26f768 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,5 @@ -* 2017-09-01: Version 1.1.3 +* 2017-09-04: Version 1.1.3 + * Small bugfixes that came out of static analysis * No annotations with the output of getdns_query anymore, unless -V option is given to increase verbosity Thanks Ollivier Robert