[SATYR PATCH] Fix fingerprint incompatibility with btparser

Michal Toman mtoman at redhat.com
Tue May 14 14:07:10 UTC 2013


Pushed

On 14.05.2013 15:10, Martin Milata  wrote:
> The libcalls and calltree_leaves fingerprint components were not sorted
> before hashing, due to me not being able to use qsort properly ...
>
> Signed-off-by: Martin Milata <mmilata at redhat.com>
> ---
>   lib/core_fingerprint.c | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/lib/core_fingerprint.c b/lib/core_fingerprint.c
> index ddf2a4d..d153f8b 100644
> --- a/lib/core_fingerprint.c
> +++ b/lib/core_fingerprint.c
> @@ -30,6 +30,7 @@
>   #include <ctype.h>
>   #include <string.h>
>   #include <stdio.h>
> +#include <stdlib.h>
>
>   static void
>   fingerprint_add_bool(struct sr_strbuf *buffer,
> @@ -279,9 +280,9 @@ get_libcalls(char ***symbol_list,
>   }
>
>   static int
> -strcmp_reverse(const char *s1, const char *s2)
> +strcmp_wrapper(const char **s1, const char **s2)
>   {
> -    return -strcmp(s1, s2);
> +    return strcmp(*s1, *s2);
>   }
>
>   static bool
> @@ -308,7 +309,7 @@ fp_libcalls(struct sr_strbuf *fingerprint,
>           return false;
>
>       qsort(symbol_list, symbol_list_size,
> -          sizeof(char*), (comparison_fn_t)strcmp_reverse);
> +          sizeof(char*), (comparison_fn_t)strcmp_wrapper);
>
>       /* Make it unique. */
>       sr_struniq(symbol_list, &symbol_list_size);
> @@ -347,7 +348,7 @@ fp_calltree_leaves(struct sr_strbuf *fingerprint,
>           return false;
>
>       qsort(symbol_list, symbol_list_size,
> -          sizeof(char*), (comparison_fn_t)strcmp_reverse);
> +          sizeof(char*), (comparison_fn_t)strcmp_wrapper);
>
>       /* Make it unique. */
>       sr_struniq(symbol_list, &symbol_list_size);
>


More information about the Crash-catcher mailing list