From: Peter Wu Date: Mon, 16 Feb 2015 18:41:56 +0000 (+0100) Subject: Fix "Allocator sizeof operand mismatch" X-Git-Tag: upstream/0.6.1~2^2~4 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=44943895d38d31d31e3d948e681b02f3be1cc83c;p=pkg%2Fabook.git Fix "Allocator sizeof operand mismatch" sizeof should be used on the data that will be stored, not the pointer. Luckily the pointers are larger than the actual data, so there is no security issue here. Remove sizeof(char) as it is equal to 1 by the C standard. Caught by Clang Static Analyzer. --- diff --git a/abook.c b/abook.c index 3749561..7410f6b 100644 --- a/abook.c +++ b/abook.c @@ -420,8 +420,8 @@ parse_command_line(int argc, char **argv) fprintf(stderr, _("Invalid custom format string\n")); exit(EXIT_FAILURE); } - parsed_custom_format = (char *)malloc(FORMAT_STRING_LEN * sizeof(char*)); - custom_format_fields = (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types *)); + parsed_custom_format = (char *)malloc(FORMAT_STRING_LEN); + custom_format_fields = (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types)); parse_custom_format(custom_format, parsed_custom_format, custom_format_fields); } if(optind < argc) { diff --git a/filter.c b/filter.c index b6cb98f..eb6e778 100644 --- a/filter.c +++ b/filter.c @@ -2723,11 +2723,10 @@ extern char custom_format[FORMAT_STRING_LEN]; static int custom_export_database(FILE *out, struct db_enumerator e) { - char *format_string = - (char *)malloc(FORMAT_STRING_LEN * sizeof(char*)); + char *format_string = (char *)malloc(FORMAT_STRING_LEN); enum field_types *ft = - (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types *)); + (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types)); parse_custom_format(custom_format, format_string, ft);