how noisy is ubsan ? should we add it to CI ?

сб, 18 янв. 2020 г. в 06:07, Tim Duesterhus <t...@bastelstu.be>:

> Left shifting of large signed values and negative values is undefined.
>
> In a test script clang's ubsan rightfully complains:
>
> > runtime error: left shift of 1934242336581872173 by 13 places cannot be
> represented in type 'int64_t' (aka 'long')
>
> This bug was introduced in the initial version of the DNS resolver
> in 325137d603aa81bd24cbd8c99d816dd42291daa7. The fix must be backported
> to HAProxy 1.6+.
> ---
>  src/dns.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/dns.c b/src/dns.c
> index bc68a81c0..64bb0d15f 100644
> --- a/src/dns.c
> +++ b/src/dns.c
> @@ -54,7 +54,7 @@
>  struct list dns_resolvers  = LIST_HEAD_INIT(dns_resolvers);
>  struct list dns_srvrq_list = LIST_HEAD_INIT(dns_srvrq_list);
>
> -static THREAD_LOCAL int64_t dns_query_id_seed = 0; /* random seed */
> +static THREAD_LOCAL uint64_t dns_query_id_seed = 0; /* random seed */
>
>  DECLARE_STATIC_POOL(dns_answer_item_pool, "dns_answer_item",
> sizeof(struct dns_answer_item));
>  DECLARE_STATIC_POOL(dns_resolution_pool,  "dns_resolution",
> sizeof(struct dns_resolution));
> --
> 2.25.0
>
>
>

Reply via email to