From: Dag-Erling Smørgrav Date: Fri, 4 Oct 2024 15:45:58 +0000 (+0200) Subject: Miscellaneous code cleanup (#2285) X-Git-Tag: v3.8.0~160 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a90e9d84ec147be2ef6a720955f3b315cb54bca3;p=thirdparty%2Flibarchive.git Miscellaneous code cleanup (#2285) This fixes various code quality issues I encountered while chasing a memory leak reported by test automation. I failed to reproduce the memory leak, but I hope you find this useful nonetheless. --- diff --git a/configure.ac b/configure.ac index c4d79ab6a..1d7c8da57 100644 --- a/configure.ac +++ b/configure.ac @@ -367,6 +367,7 @@ AC_CHECK_HEADERS([sys/param.h sys/poll.h sys/richacl.h]) AC_CHECK_HEADERS([sys/select.h sys/statfs.h sys/statvfs.h sys/sysmacros.h]) AC_CHECK_HEADERS([sys/time.h sys/utime.h sys/utsname.h sys/vfs.h sys/xattr.h]) AC_CHECK_HEADERS([time.h unistd.h utime.h wchar.h wctype.h]) +AC_CHECK_TYPE([suseconds_t]) AC_CHECK_HEADERS([windows.h]) # check windows.h first; the other headers require it. AC_CHECK_HEADERS([wincrypt.h winioctl.h],[],[], diff --git a/cpio/cmdline.c b/cpio/cmdline.c index 0f26c5173..60ca9c67b 100644 --- a/cpio/cmdline.c +++ b/cpio/cmdline.c @@ -350,7 +350,7 @@ owner_parse(const char *spec, struct cpio_owner *owner, const char **errmsg) char *user; struct passwd *pwent; - user = (char *)malloc(ue - u + 1); + user = malloc(ue - u + 1); if (user == NULL) goto alloc_error; memcpy(user, u, ue - u); diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c index 77d99480f..bbb085afe 100644 --- a/libarchive/archive_acl.c +++ b/libarchive/archive_acl.c @@ -56,7 +56,7 @@ static int archive_acl_add_entry_len_l(struct archive_acl *acl, int type, int permset, int tag, int id, const char *name, size_t len, struct archive_string_conv *sc); static int archive_acl_text_want_type(struct archive_acl *acl, int flags); -static ssize_t archive_acl_text_len(struct archive_acl *acl, int want_type, +static size_t archive_acl_text_len(struct archive_acl *acl, int want_type, int flags, int wide, struct archive *a, struct archive_string_conv *sc); static int isint_w(const wchar_t *start, const wchar_t *end, int *result); @@ -346,7 +346,7 @@ acl_new_entry(struct archive_acl *acl, } /* Add a new entry to the end of the list. */ - ap = (struct archive_acl_entry *)calloc(1, sizeof(*ap)); + ap = calloc(1, sizeof(*ap)); if (ap == NULL) return (NULL); if (aq == NULL) @@ -528,14 +528,14 @@ archive_acl_text_want_type(struct archive_acl *acl, int flags) /* * Calculate ACL text string length */ -static ssize_t +static size_t archive_acl_text_len(struct archive_acl *acl, int want_type, int flags, int wide, struct archive *a, struct archive_string_conv *sc) { struct archive_acl_entry *ap; const char *name; const wchar_t *wname; int count, idlen, tmp, r; - ssize_t length; + size_t length; size_t len; count = 0; @@ -664,7 +664,7 @@ archive_acl_to_text_w(struct archive_acl *acl, ssize_t *text_len, int flags, struct archive *a) { int count; - ssize_t length; + size_t length; size_t len; const wchar_t *wname; const wchar_t *prefix; @@ -693,7 +693,7 @@ archive_acl_to_text_w(struct archive_acl *acl, ssize_t *text_len, int flags, separator = L'\n'; /* Now, allocate the string and actually populate it. */ - wp = ws = (wchar_t *)malloc(length * sizeof(wchar_t)); + wp = ws = malloc(length * sizeof(*wp)); if (wp == NULL) { if (errno == ENOMEM) __archive_errx(1, "No memory"); @@ -755,7 +755,7 @@ archive_acl_to_text_w(struct archive_acl *acl, ssize_t *text_len, int flags, len = wcslen(ws); - if ((ssize_t)len > (length - 1)) + if (len > length - 1) __archive_errx(1, "Buffer overrun"); if (text_len != NULL) @@ -897,7 +897,7 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags, struct archive_string_conv *sc) { int count; - ssize_t length; + size_t length; size_t len; const char *name; const char *prefix; @@ -926,7 +926,7 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags, separator = '\n'; /* Now, allocate the string and actually populate it. */ - p = s = (char *)malloc(length * sizeof(char)); + p = s = malloc(length * sizeof(*p)); if (p == NULL) { if (errno == ENOMEM) __archive_errx(1, "No memory"); @@ -990,7 +990,7 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags, len = strlen(s); - if ((ssize_t)len > (length - 1)) + if (len > length - 1) __archive_errx(1, "Buffer overrun"); if (text_len != NULL) diff --git a/libarchive/archive_entry.c b/libarchive/archive_entry.c index f68fee65d..4ebfc5fa6 100644 --- a/libarchive/archive_entry.c +++ b/libarchive/archive_entry.c @@ -263,7 +263,7 @@ archive_entry_new2(struct archive *a) { struct archive_entry *entry; - entry = (struct archive_entry *)calloc(1, sizeof(*entry)); + entry = calloc(1, sizeof(*entry)); if (entry == NULL) return (NULL); entry->archive = a; @@ -2095,7 +2095,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bitclear) if (length == 0) return (NULL); - string = (char *)malloc(length); + string = malloc(length); if (string == NULL) return (NULL); diff --git a/libarchive/archive_entry_sparse.c b/libarchive/archive_entry_sparse.c index b81684d18..c43089611 100644 --- a/libarchive/archive_entry_sparse.c +++ b/libarchive/archive_entry_sparse.c @@ -76,7 +76,7 @@ archive_entry_sparse_add_entry(struct archive_entry *entry, } } - if ((sp = (struct ae_sparse *)malloc(sizeof(*sp))) == NULL) + if ((sp = malloc(sizeof(*sp))) == NULL) /* XXX Error XXX */ return; diff --git a/libarchive/archive_entry_xattr.c b/libarchive/archive_entry_xattr.c index 14848a5ab..b92e1878b 100644 --- a/libarchive/archive_entry_xattr.c +++ b/libarchive/archive_entry_xattr.c @@ -90,7 +90,7 @@ archive_entry_xattr_add_entry(struct archive_entry *entry, { struct ae_xattr *xp; - if ((xp = (struct ae_xattr *)malloc(sizeof(struct ae_xattr))) == NULL) + if ((xp = malloc(sizeof(struct ae_xattr))) == NULL) __archive_errx(1, "Out of memory"); if ((xp->name = strdup(name)) == NULL) diff --git a/libarchive/archive_match.c b/libarchive/archive_match.c index 3ab8eda36..446417a9a 100644 --- a/libarchive/archive_match.c +++ b/libarchive/archive_match.c @@ -220,7 +220,7 @@ archive_match_new(void) { struct archive_match *a; - a = (struct archive_match *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_MATCH_MAGIC; diff --git a/libarchive/archive_openssl_evp_private.h b/libarchive/archive_openssl_evp_private.h index 8ac477280..d5ba7b0d6 100644 --- a/libarchive/archive_openssl_evp_private.h +++ b/libarchive/archive_openssl_evp_private.h @@ -39,7 +39,7 @@ #include /* memset */ static inline EVP_MD_CTX *EVP_MD_CTX_new(void) { - EVP_MD_CTX *ctx = (EVP_MD_CTX *)calloc(1, sizeof(EVP_MD_CTX)); + EVP_MD_CTX *ctx = calloc(1, sizeof(EVP_MD_CTX)); return ctx; } diff --git a/libarchive/archive_openssl_hmac_private.h b/libarchive/archive_openssl_hmac_private.h index 25c8dda65..8ed76260d 100644 --- a/libarchive/archive_openssl_hmac_private.h +++ b/libarchive/archive_openssl_hmac_private.h @@ -39,7 +39,7 @@ #include /* memset */ static inline HMAC_CTX *HMAC_CTX_new(void) { - HMAC_CTX *ctx = (HMAC_CTX *)calloc(1, sizeof(HMAC_CTX)); + HMAC_CTX *ctx = calloc(1, sizeof(HMAC_CTX)); return ctx; } diff --git a/libarchive/archive_ppmd7.c b/libarchive/archive_ppmd7.c index cc3f77820..30124f174 100644 --- a/libarchive/archive_ppmd7.c +++ b/libarchive/archive_ppmd7.c @@ -138,7 +138,7 @@ static Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size) #else 4 - (size & 3); #endif - if ((p->Base = (Byte *)malloc(p->AlignOffset + size + if ((p->Base = malloc(p->AlignOffset + size #ifndef PPMD_32BIT + UNIT_SIZE #endif diff --git a/libarchive/archive_ppmd8.c b/libarchive/archive_ppmd8.c index bae597095..2fb7f7141 100644 --- a/libarchive/archive_ppmd8.c +++ b/libarchive/archive_ppmd8.c @@ -107,7 +107,7 @@ Bool Ppmd8_Alloc(CPpmd8 *p, UInt32 size) #else 4 - (size & 3); #endif - if ((p->Base = (Byte *)malloc(p->AlignOffset + size)) == 0) + if ((p->Base = malloc(p->AlignOffset + size)) == 0) return False; p->Size = size; } diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c index 1fa35853c..822c534b8 100644 --- a/libarchive/archive_read.c +++ b/libarchive/archive_read.c @@ -92,7 +92,7 @@ archive_read_new(void) { struct archive_read *a; - a = (struct archive_read *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_READ_MAGIC; @@ -582,7 +582,7 @@ choose_filters(struct archive_read *a) } filter - = (struct archive_read_filter *)calloc(1, sizeof(*filter)); + = calloc(1, sizeof(*filter)); if (filter == NULL) return (ARCHIVE_FATAL); filter->bidder = best_bidder; @@ -1451,7 +1451,7 @@ __archive_read_filter_ahead(struct archive_read_filter *filter, s = t; } /* Now s >= min, so allocate a new buffer. */ - p = (char *)malloc(s); + p = malloc(s); if (p == NULL) { archive_set_error( &filter->archive->archive, diff --git a/libarchive/archive_read_append_filter.c b/libarchive/archive_read_append_filter.c index 59ea5c442..a3986e9b6 100644 --- a/libarchive/archive_read_append_filter.c +++ b/libarchive/archive_read_append_filter.c @@ -123,8 +123,7 @@ archive_read_append_filter(struct archive *_a, int code) return (ARCHIVE_FATAL); } - filter - = (struct archive_read_filter *)calloc(1, sizeof(*filter)); + filter = calloc(1, sizeof(*filter)); if (filter == NULL) { archive_set_error(&a->archive, ENOMEM, "Out of memory"); @@ -180,8 +179,7 @@ archive_read_append_filter_program_signature(struct archive *_a, return (ARCHIVE_FATAL); } - filter - = (struct archive_read_filter *)calloc(1, sizeof(*filter)); + filter = calloc(1, sizeof(*filter)); if (filter == NULL) { archive_set_error(&a->archive, ENOMEM, "Out of memory"); diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c index 76a4fa44d..09965eb98 100644 --- a/libarchive/archive_read_disk_posix.c +++ b/libarchive/archive_read_disk_posix.c @@ -451,7 +451,7 @@ archive_read_disk_new(void) { struct archive_read_disk *a; - a = (struct archive_read_disk *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_READ_DISK_MAGIC; diff --git a/libarchive/archive_read_disk_windows.c b/libarchive/archive_read_disk_windows.c index 285747ea9..feb870b11 100644 --- a/libarchive/archive_read_disk_windows.c +++ b/libarchive/archive_read_disk_windows.c @@ -538,7 +538,7 @@ archive_read_disk_new(void) { struct archive_read_disk *a; - a = (struct archive_read_disk *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_READ_DISK_MAGIC; @@ -2473,7 +2473,7 @@ setup_sparse_from_disk(struct archive_read_disk *a, range.FileOffset.QuadPart = 0; range.Length.QuadPart = entry_size; outranges_size = 2048; - outranges = (FILE_ALLOCATED_RANGE_BUFFER *)malloc(outranges_size); + outranges = malloc(outranges_size); if (outranges == NULL) { archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory"); diff --git a/libarchive/archive_read_extract2.c b/libarchive/archive_read_extract2.c index e11cac159..7cf38c301 100644 --- a/libarchive/archive_read_extract2.c +++ b/libarchive/archive_read_extract2.c @@ -51,7 +51,7 @@ struct archive_read_extract * __archive_read_get_extract(struct archive_read *a) { if (a->extract == NULL) { - a->extract = (struct archive_read_extract *)calloc(1, sizeof(*a->extract)); + a->extract = calloc(1, sizeof(*a->extract)); if (a->extract == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't extract"); return (NULL); diff --git a/libarchive/archive_read_open_fd.c b/libarchive/archive_read_open_fd.c index 3ee2423d3..debfde208 100644 --- a/libarchive/archive_read_open_fd.c +++ b/libarchive/archive_read_open_fd.c @@ -74,7 +74,7 @@ archive_read_open_fd(struct archive *a, int fd, size_t block_size) return (ARCHIVE_FATAL); } - mine = (struct read_fd_data *)calloc(1, sizeof(*mine)); + mine = calloc(1, sizeof(*mine)); b = malloc(block_size); if (mine == NULL || b == NULL) { archive_set_error(a, ENOMEM, "No memory"); diff --git a/libarchive/archive_read_open_file.c b/libarchive/archive_read_open_file.c index dcf1d4698..cf49ebd8f 100644 --- a/libarchive/archive_read_open_file.c +++ b/libarchive/archive_read_open_file.c @@ -69,7 +69,7 @@ archive_read_open_FILE(struct archive *a, FILE *f) void *b; archive_clear_error(a); - mine = (struct read_FILE_data *)malloc(sizeof(*mine)); + mine = malloc(sizeof(*mine)); b = malloc(block_size); if (mine == NULL || b == NULL) { archive_set_error(a, ENOMEM, "No memory"); diff --git a/libarchive/archive_read_open_filename.c b/libarchive/archive_read_open_filename.c index dd2e16022..8def020ff 100644 --- a/libarchive/archive_read_open_filename.c +++ b/libarchive/archive_read_open_filename.c @@ -122,7 +122,7 @@ archive_read_open_filenames(struct archive *a, const char **filenames, { if (filename == NULL) filename = ""; - mine = (struct read_file_data *)calloc(1, + mine = calloc(1, sizeof(*mine) + strlen(filename)); if (mine == NULL) goto no_memory; @@ -175,7 +175,7 @@ archive_read_open_filenames_w(struct archive *a, const wchar_t **wfilenames, { if (wfilename == NULL) wfilename = L""; - mine = (struct read_file_data *)calloc(1, + mine = calloc(1, sizeof(*mine) + wcslen(wfilename) * sizeof(wchar_t)); if (mine == NULL) goto no_memory; diff --git a/libarchive/archive_read_open_memory.c b/libarchive/archive_read_open_memory.c index a057ce643..460bb5ae6 100644 --- a/libarchive/archive_read_open_memory.c +++ b/libarchive/archive_read_open_memory.c @@ -69,7 +69,7 @@ archive_read_open_memory2(struct archive *a, const void *buff, { struct read_memory_data *mine; - mine = (struct read_memory_data *)calloc(1, sizeof(*mine)); + mine = calloc(1, sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_read_support_filter_bzip2.c b/libarchive/archive_read_support_filter_bzip2.c index 0392d450a..479237c27 100644 --- a/libarchive/archive_read_support_filter_bzip2.c +++ b/libarchive/archive_read_support_filter_bzip2.c @@ -190,8 +190,8 @@ bzip2_reader_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_BZIP2; self->name = "bzip2"; - state = (struct private_data *)calloc(1, sizeof(*state)); - out_block = (unsigned char *)malloc(out_block_size); + state = calloc(1, sizeof(*state)); + out_block = malloc(out_block_size); if (state == NULL || out_block == NULL) { archive_set_error(&self->archive->archive, ENOMEM, "Can't allocate data for bzip2 decompression"); diff --git a/libarchive/archive_read_support_filter_compress.c b/libarchive/archive_read_support_filter_compress.c index 29ae72abe..b6e9816df 100644 --- a/libarchive/archive_read_support_filter_compress.c +++ b/libarchive/archive_read_support_filter_compress.c @@ -217,7 +217,7 @@ compress_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_COMPRESS; self->name = "compress (.Z)"; - state = (struct private_data *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); out_block = malloc(out_block_size); if (state == NULL || out_block == NULL) { free(out_block); diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c index 152ea9bdb..15b98045b 100644 --- a/libarchive/archive_read_support_filter_gzip.c +++ b/libarchive/archive_read_support_filter_gzip.c @@ -307,8 +307,8 @@ gzip_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_GZIP; self->name = "gzip"; - state = (struct private_data *)calloc(1, sizeof(*state)); - out_block = (unsigned char *)malloc(out_block_size); + state = calloc(1, sizeof(*state)); + out_block = malloc(out_block_size); if (state == NULL || out_block == NULL) { free(out_block); free(state); diff --git a/libarchive/archive_read_support_filter_lz4.c b/libarchive/archive_read_support_filter_lz4.c index bccf4fb8f..8c9777156 100644 --- a/libarchive/archive_read_support_filter_lz4.c +++ b/libarchive/archive_read_support_filter_lz4.c @@ -223,7 +223,7 @@ lz4_reader_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_LZ4; self->name = "lz4"; - state = (struct private_data *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(&self->archive->archive, ENOMEM, "Can't allocate data for lz4 decompression"); @@ -248,7 +248,7 @@ lz4_allocate_out_block(struct archive_read_filter *self) out_block_size += 64 * 1024; if (state->out_block_size < out_block_size) { free(state->out_block); - out_block = (unsigned char *)malloc(out_block_size); + out_block = malloc(out_block_size); state->out_block_size = out_block_size; if (out_block == NULL) { archive_set_error(&self->archive->archive, ENOMEM, @@ -271,7 +271,7 @@ lz4_allocate_out_block_for_legacy(struct archive_read_filter *self) if (state->out_block_size < out_block_size) { free(state->out_block); - out_block = (unsigned char *)malloc(out_block_size); + out_block = malloc(out_block_size); state->out_block_size = out_block_size; if (out_block == NULL) { archive_set_error(&self->archive->archive, ENOMEM, diff --git a/libarchive/archive_read_support_filter_lzop.c b/libarchive/archive_read_support_filter_lzop.c index 0aa85927b..b0c4bb13e 100644 --- a/libarchive/archive_read_support_filter_lzop.c +++ b/libarchive/archive_read_support_filter_lzop.c @@ -185,7 +185,7 @@ lzop_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_LZOP; self->name = "lzop"; - state = (struct read_lzop *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(&self->archive->archive, ENOMEM, "Can't allocate data for lzop decompression"); diff --git a/libarchive/archive_read_support_filter_program.c b/libarchive/archive_read_support_filter_program.c index 0482c57c1..9e825223b 100644 --- a/libarchive/archive_read_support_filter_program.c +++ b/libarchive/archive_read_support_filter_program.c @@ -139,7 +139,7 @@ archive_read_support_filter_program_signature(struct archive *_a, /* * Allocate our private state. */ - state = (struct program_bidder *)calloc(1, sizeof (*state)); + state = calloc(1, sizeof (*state)); if (state == NULL) goto memerr; state->cmd = strdup(cmd); @@ -398,8 +398,8 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd) size_t l; l = strlen(prefix) + strlen(cmd) + 1; - state = (struct program_filter *)calloc(1, sizeof(*state)); - out_buf = (char *)malloc(out_buf_len); + state = calloc(1, sizeof(*state)); + out_buf = malloc(out_buf_len); if (state == NULL || out_buf == NULL || archive_string_ensure(&state->description, l) == NULL) { archive_set_error(&self->archive->archive, ENOMEM, diff --git a/libarchive/archive_read_support_filter_rpm.c b/libarchive/archive_read_support_filter_rpm.c index a55bc0cf7..25ace4a25 100644 --- a/libarchive/archive_read_support_filter_rpm.c +++ b/libarchive/archive_read_support_filter_rpm.c @@ -144,7 +144,7 @@ rpm_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_RPM; self->name = "rpm"; - rpm = (struct rpm *)calloc(1, sizeof(*rpm)); + rpm = calloc(1, sizeof(*rpm)); if (rpm == NULL) { archive_set_error(&self->archive->archive, ENOMEM, "Can't allocate data for rpm"); diff --git a/libarchive/archive_read_support_filter_uu.c b/libarchive/archive_read_support_filter_uu.c index 8d361a4f8..d722fe343 100644 --- a/libarchive/archive_read_support_filter_uu.c +++ b/libarchive/archive_read_support_filter_uu.c @@ -375,7 +375,7 @@ uudecode_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_UU; self->name = "uu"; - uudecode = (struct uudecode *)calloc(1, sizeof(*uudecode)); + uudecode = calloc(1, sizeof(*uudecode)); out_buff = malloc(OUT_BUFF_SIZE); in_buff = malloc(IN_BUFF_SIZE); if (uudecode == NULL || out_buff == NULL || in_buff == NULL) { diff --git a/libarchive/archive_read_support_filter_xz.c b/libarchive/archive_read_support_filter_xz.c index e55fb00ed..dcbf734ec 100644 --- a/libarchive/archive_read_support_filter_xz.c +++ b/libarchive/archive_read_support_filter_xz.c @@ -476,8 +476,8 @@ xz_lzma_bidder_init(struct archive_read_filter *self) struct private_data *state; int ret; - state = (struct private_data *)calloc(1, sizeof(*state)); - out_block = (unsigned char *)malloc(out_block_size); + state = calloc(1, sizeof(*state)); + out_block = malloc(out_block_size); if (state == NULL || out_block == NULL) { archive_set_error(&self->archive->archive, ENOMEM, "Can't allocate data for xz decompression"); diff --git a/libarchive/archive_read_support_filter_zstd.c b/libarchive/archive_read_support_filter_zstd.c index f7326d243..9a1dd71ab 100644 --- a/libarchive/archive_read_support_filter_zstd.c +++ b/libarchive/archive_read_support_filter_zstd.c @@ -175,8 +175,8 @@ zstd_bidder_init(struct archive_read_filter *self) self->code = ARCHIVE_FILTER_ZSTD; self->name = "zstd"; - state = (struct private_data *)calloc(1, sizeof(*state)); - out_block = (unsigned char *)malloc(out_block_size); + state = calloc(1, sizeof(*state)); + out_block = malloc(out_block_size); dstream = ZSTD_createDStream(); if (state == NULL || out_block == NULL || dstream == NULL) { diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c index b1e0c91ad..fd5792d16 100644 --- a/libarchive/archive_read_support_format_7zip.c +++ b/libarchive/archive_read_support_format_7zip.c @@ -767,29 +767,27 @@ archive_read_format_7zip_read_header(struct archive_read *a, if (zip_entry->attr & supported_attrs) { char *fflags_text, *ptr; - /* allocate for "rdonly,hidden,system," */ - fflags_text = malloc(22 * sizeof(char)); + /* allocate for ",rdonly,hidden,system" */ + fflags_text = malloc(22 * sizeof(*fflags_text)); if (fflags_text != NULL) { ptr = fflags_text; - if (zip_entry->attr & FILE_ATTRIBUTE_READONLY) { - strcpy(ptr, "rdonly,"); - ptr = ptr + 7; - } - if (zip_entry->attr & FILE_ATTRIBUTE_HIDDEN) { - strcpy(ptr, "hidden,"); - ptr = ptr + 7; - } - if (zip_entry->attr & FILE_ATTRIBUTE_SYSTEM) { - strcpy(ptr, "system,"); - ptr = ptr + 7; - } - if (ptr > fflags_text) { - /* Delete trailing comma */ - *(ptr - 1) = '\0'; - archive_entry_copy_fflags_text(entry, - fflags_text); - } - free(fflags_text); + if (zip_entry->attr & FILE_ATTRIBUTE_READONLY) { + strcpy(ptr, ",rdonly"); + ptr = ptr + 7; + } + if (zip_entry->attr & FILE_ATTRIBUTE_HIDDEN) { + strcpy(ptr, ",hidden"); + ptr = ptr + 7; + } + if (zip_entry->attr & FILE_ATTRIBUTE_SYSTEM) { + strcpy(ptr, ",system"); + ptr = ptr + 7; + } + if (ptr > fflags_text) { + archive_entry_copy_fflags_text(entry, + fflags_text + 1); + } + free(fflags_text); } } diff --git a/libarchive/archive_read_support_format_ar.c b/libarchive/archive_read_support_format_ar.c index b0d1ddbc5..6dfe2939d 100644 --- a/libarchive/archive_read_support_format_ar.c +++ b/libarchive/archive_read_support_format_ar.c @@ -103,7 +103,7 @@ archive_read_support_format_ar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_ar"); - ar = (struct ar *)calloc(1, sizeof(*ar)); + ar = calloc(1, sizeof(*ar)); if (ar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ar data"); @@ -368,7 +368,7 @@ _ar_read_header(struct archive_read *a, struct archive_entry *entry, return (ARCHIVE_FATAL); } /* Store it in the entry. */ - p = (char *)malloc(bsd_name_length + 1); + p = malloc(bsd_name_length + 1); if (p == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate fname buffer"); diff --git a/libarchive/archive_read_support_format_cab.c b/libarchive/archive_read_support_format_cab.c index 4ed088d43..e012248a5 100644 --- a/libarchive/archive_read_support_format_cab.c +++ b/libarchive/archive_read_support_format_cab.c @@ -356,7 +356,7 @@ archive_read_support_format_cab(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_cab"); - cab = (struct cab *)calloc(1, sizeof(*cab)); + cab = calloc(1, sizeof(*cab)); if (cab == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate CAB data"); @@ -717,7 +717,7 @@ cab_read_header(struct archive_read *a) /* * Read CFFOLDER. */ - hd->folder_array = (struct cffolder *)calloc( + hd->folder_array = calloc( hd->folder_count, sizeof(struct cffolder)); if (hd->folder_array == NULL) goto nomem; @@ -780,7 +780,7 @@ cab_read_header(struct archive_read *a) cab->cab_offset += skip; } /* Allocate memory for CFDATA */ - hd->file_array = (struct cffile *)calloc( + hd->file_array = calloc( hd->file_count, sizeof(struct cffile)); if (hd->file_array == NULL) goto nomem; @@ -1412,7 +1412,7 @@ cab_read_ahead_cfdata_deflate(struct archive_read *a, ssize_t *avail) if (cab->uncompressed_buffer == NULL) { cab->uncompressed_buffer_size = 0x8000; cab->uncompressed_buffer - = (unsigned char *)malloc(cab->uncompressed_buffer_size); + = malloc(cab->uncompressed_buffer_size); if (cab->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for CAB reader"); @@ -1641,7 +1641,7 @@ cab_read_ahead_cfdata_lzx(struct archive_read *a, ssize_t *avail) if (cab->uncompressed_buffer == NULL) { cab->uncompressed_buffer_size = 0x8000; cab->uncompressed_buffer - = (unsigned char *)malloc(cab->uncompressed_buffer_size); + = malloc(cab->uncompressed_buffer_size); if (cab->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for CAB reader"); diff --git a/libarchive/archive_read_support_format_cpio.c b/libarchive/archive_read_support_format_cpio.c index 69752cbb0..42a89c1b6 100644 --- a/libarchive/archive_read_support_format_cpio.c +++ b/libarchive/archive_read_support_format_cpio.c @@ -228,7 +228,7 @@ archive_read_support_format_cpio(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_cpio"); - cpio = (struct cpio *)calloc(1, sizeof(*cpio)); + cpio = calloc(1, sizeof(*cpio)); if (cpio == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); return (ARCHIVE_FATAL); @@ -1088,7 +1088,7 @@ record_hardlink(struct archive_read *a, } } - le = (struct links_entry *)malloc(sizeof(struct links_entry)); + le = malloc(sizeof(struct links_entry)); if (le == NULL) { archive_set_error(&a->archive, ENOMEM, "Out of memory adding file to list"); diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c index 951afb603..baf265f46 100644 --- a/libarchive/archive_read_support_format_iso9660.c +++ b/libarchive/archive_read_support_format_iso9660.c @@ -463,7 +463,7 @@ archive_read_support_format_iso9660(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_iso9660"); - iso9660 = (struct iso9660 *)calloc(1, sizeof(*iso9660)); + iso9660 = calloc(1, sizeof(*iso9660)); if (iso9660 == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate iso9660 data"); @@ -1905,7 +1905,7 @@ parse_file_info(struct archive_read *a, struct file_info *parent, } /* Create a new file entry and copy data from the ISO dir record. */ - file = (struct file_info *)calloc(1, sizeof(*file)); + file = calloc(1, sizeof(*file)); if (file == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for file entry"); diff --git a/libarchive/archive_read_support_format_lha.c b/libarchive/archive_read_support_format_lha.c index e417baad1..c7cbad272 100644 --- a/libarchive/archive_read_support_format_lha.c +++ b/libarchive/archive_read_support_format_lha.c @@ -265,7 +265,7 @@ archive_read_support_format_lha(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_lha"); - lha = (struct lha *)calloc(1, sizeof(*lha)); + lha = calloc(1, sizeof(*lha)); if (lha == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate lha data"); diff --git a/libarchive/archive_read_support_format_mtree.c b/libarchive/archive_read_support_format_mtree.c index 6971228ee..ba0e49de2 100644 --- a/libarchive/archive_read_support_format_mtree.c +++ b/libarchive/archive_read_support_format_mtree.c @@ -273,7 +273,7 @@ archive_read_support_format_mtree(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_mtree"); - mtree = (struct mtree *)calloc(1, sizeof(*mtree)); + mtree = calloc(1, sizeof(*mtree)); if (mtree == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate mtree data"); diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c index cbc6ec984..af2831b36 100644 --- a/libarchive/archive_read_support_format_rar.c +++ b/libarchive/archive_read_support_format_rar.c @@ -734,7 +734,7 @@ archive_read_support_format_rar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_rar"); - rar = (struct rar *)calloc(1, sizeof(*rar)); + rar = calloc(1, sizeof(*rar)); if (rar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate rar data"); @@ -2802,9 +2802,7 @@ make_table(struct archive_read *a, struct huffman_code *code) else code->tablesize = code->maxlength; - code->table = - (struct huffman_table_entry *)calloc(1, sizeof(*code->table) - * ((size_t)1 << code->tablesize)); + code->table = calloc(1U << code->tablesize, sizeof(*code->table)); return make_table_recurse(a, code, 0, code->table, 0, code->tablesize); } diff --git a/libarchive/archive_read_support_format_rar5.c b/libarchive/archive_read_support_format_rar5.c index d23ef3184..cafd064ad 100644 --- a/libarchive/archive_read_support_format_rar5.c +++ b/libarchive/archive_read_support_format_rar5.c @@ -535,8 +535,7 @@ static void write_filter_data(struct rar5* rar, uint32_t offset, /* Allocates a new filter descriptor and adds it to the filter array. */ static struct filter_info* add_new_filter(struct rar5* rar) { - struct filter_info* f = - (struct filter_info*) calloc(1, sizeof(struct filter_info)); + struct filter_info* f = calloc(1, sizeof(*f)); if(!f) { return NULL; @@ -1846,27 +1845,25 @@ static int process_head_file(struct archive_read* a, struct rar5* rar, if (file_attr & (ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM)) { char *fflags_text, *ptr; - /* allocate for "rdonly,hidden,system," */ - fflags_text = malloc(22 * sizeof(char)); + /* allocate for ",rdonly,hidden,system" */ + fflags_text = malloc(22 * sizeof(*fflags_text)); if (fflags_text != NULL) { ptr = fflags_text; if (file_attr & ATTR_READONLY) { - strcpy(ptr, "rdonly,"); + strcpy(ptr, ",rdonly"); ptr = ptr + 7; } if (file_attr & ATTR_HIDDEN) { - strcpy(ptr, "hidden,"); + strcpy(ptr, ",hidden"); ptr = ptr + 7; } if (file_attr & ATTR_SYSTEM) { - strcpy(ptr, "system,"); + strcpy(ptr, ",system"); ptr = ptr + 7; } if (ptr > fflags_text) { - /* Delete trailing comma */ - *(ptr - 1) = '\0'; archive_entry_copy_fflags_text(entry, - fflags_text); + fflags_text + 1); } free(fflags_text); } diff --git a/libarchive/archive_read_support_format_raw.c b/libarchive/archive_read_support_format_raw.c index efdbf276b..e935396dd 100644 --- a/libarchive/archive_read_support_format_raw.c +++ b/libarchive/archive_read_support_format_raw.c @@ -61,7 +61,7 @@ archive_read_support_format_raw(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_raw"); - info = (struct raw_info *)calloc(1, sizeof(*info)); + info = calloc(1, sizeof(*info)); if (info == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate raw_info data"); diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c index 739b8c6fc..4f42db8f0 100644 --- a/libarchive/archive_read_support_format_tar.c +++ b/libarchive/archive_read_support_format_tar.c @@ -256,7 +256,7 @@ archive_read_support_format_tar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_tar"); - tar = (struct tar *)calloc(1, sizeof(*tar)); + tar = calloc(1, sizeof(*tar)); if (tar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate tar data"); @@ -2908,7 +2908,7 @@ gnu_add_sparse_entry(struct archive_read *a, struct tar *tar, { struct sparse_block *p; - p = (struct sparse_block *)calloc(1, sizeof(*p)); + p = calloc(1, sizeof(*p)); if (p == NULL) { archive_set_error(&a->archive, ENOMEM, "Out of memory"); return (ARCHIVE_FATAL); @@ -3480,7 +3480,7 @@ base64_decode(const char *s, size_t len, size_t *out_len) /* Allocate enough space to hold the entire output. */ /* Note that we may not use all of this... */ - out = (char *)malloc(len - len / 4 + 1); + out = malloc(len - len / 4 + 1); if (out == NULL) { *out_len = 0; return (NULL); @@ -3535,7 +3535,7 @@ url_decode(const char *in, size_t length) char *out, *d; const char *s; - out = (char *)malloc(length + 1); + out = malloc(length + 1); if (out == NULL) return (NULL); for (s = in, d = out; length > 0 && *s != '\0'; ) { diff --git a/libarchive/archive_read_support_format_xar.c b/libarchive/archive_read_support_format_xar.c index 7c327e02f..ffffab963 100644 --- a/libarchive/archive_read_support_format_xar.c +++ b/libarchive/archive_read_support_format_xar.c @@ -450,7 +450,7 @@ archive_read_support_format_xar(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_xar"); - xar = (struct xar *)calloc(1, sizeof(*xar)); + xar = calloc(1, sizeof(*xar)); if (xar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate xar data"); diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c index 689346882..3e62533bf 100644 --- a/libarchive/archive_read_support_format_zip.c +++ b/libarchive/archive_read_support_format_zip.c @@ -1751,8 +1751,7 @@ zipx_xz_init(struct archive_read *a, struct zip *zip) free(zip->uncompressed_buffer); zip->uncompressed_buffer_size = 256 * 1024; - zip->uncompressed_buffer = - (uint8_t*) malloc(zip->uncompressed_buffer_size); + zip->uncompressed_buffer = malloc(zip->uncompressed_buffer_size); if (zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for xz decompression"); @@ -1862,8 +1861,7 @@ zipx_lzma_alone_init(struct archive_read *a, struct zip *zip) if(!zip->uncompressed_buffer) { zip->uncompressed_buffer_size = 256 * 1024; - zip->uncompressed_buffer = - (uint8_t*) malloc(zip->uncompressed_buffer_size); + zip->uncompressed_buffer = malloc(zip->uncompressed_buffer_size); if (zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, @@ -2167,8 +2165,7 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zip) free(zip->uncompressed_buffer); zip->uncompressed_buffer_size = 256 * 1024; - zip->uncompressed_buffer = - (uint8_t*) malloc(zip->uncompressed_buffer_size); + zip->uncompressed_buffer = malloc(zip->uncompressed_buffer_size); if(zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, @@ -2291,8 +2288,7 @@ zipx_bzip2_init(struct archive_read *a, struct zip *zip) free(zip->uncompressed_buffer); zip->uncompressed_buffer_size = 256 * 1024; - zip->uncompressed_buffer = - (uint8_t*) malloc(zip->uncompressed_buffer_size); + zip->uncompressed_buffer = malloc(zip->uncompressed_buffer_size); if (zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for bzip2 decompression"); @@ -2434,8 +2430,7 @@ zipx_zstd_init(struct archive_read *a, struct zip *zip) free(zip->uncompressed_buffer); zip->uncompressed_buffer_size = ZSTD_DStreamOutSize(); - zip->uncompressed_buffer = - (uint8_t*) malloc(zip->uncompressed_buffer_size); + zip->uncompressed_buffer = malloc(zip->uncompressed_buffer_size); if (zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for Zstd decompression"); @@ -2574,7 +2569,7 @@ zip_read_data_deflate(struct archive_read *a, const void **buff, if (zip->uncompressed_buffer == NULL) { zip->uncompressed_buffer_size = 256 * 1024; zip->uncompressed_buffer - = (unsigned char *)malloc(zip->uncompressed_buffer_size); + = malloc(zip->uncompressed_buffer_size); if (zip->uncompressed_buffer == NULL) { archive_set_error(&a->archive, ENOMEM, "No memory for ZIP decompression"); @@ -3600,7 +3595,7 @@ archive_read_support_format_zip_streamable(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_zip"); - zip = (struct zip *)calloc(1, sizeof(*zip)); + zip = calloc(1, sizeof(*zip)); if (zip == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate zip data"); @@ -4392,7 +4387,7 @@ archive_read_support_format_zip_seekable(struct archive *_a) archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_NEW, "archive_read_support_format_zip_seekable"); - zip = (struct zip *)calloc(1, sizeof(*zip)); + zip = calloc(1, sizeof(*zip)); if (zip == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate zip data"); diff --git a/libarchive/archive_string.c b/libarchive/archive_string.c index 41bfe7af1..abf7ad669 100644 --- a/libarchive/archive_string.c +++ b/libarchive/archive_string.c @@ -313,7 +313,7 @@ archive_string_ensure(struct archive_string *as, size_t s) if (new_length < s) new_length = s; /* Now we can reallocate the buffer. */ - p = (char *)realloc(as->s, new_length); + p = realloc(as->s, new_length); if (p == NULL) { /* On failure, wipe the string and return NULL. */ archive_string_free(as); diff --git a/libarchive/archive_util.c b/libarchive/archive_util.c index 46d03f926..3a8caad52 100644 --- a/libarchive/archive_util.c +++ b/libarchive/archive_util.c @@ -651,8 +651,7 @@ archive_utility_string_sort_helper(char **strings, unsigned int n) if (strcmp(strings[i], pivot) < 0) { lesser_count++; - tmp = (char **)realloc(lesser, - lesser_count * sizeof(char *)); + tmp = realloc(lesser, lesser_count * sizeof(*tmp)); if (!tmp) { free(greater); free(lesser); @@ -664,8 +663,7 @@ archive_utility_string_sort_helper(char **strings, unsigned int n) else { greater_count++; - tmp = (char **)realloc(greater, - greater_count * sizeof(char *)); + tmp = realloc(greater, greater_count * sizeof(*tmp)); if (!tmp) { free(greater); free(lesser); diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c index e1a4f34bf..303c68688 100644 --- a/libarchive/archive_write.c +++ b/libarchive/archive_write.c @@ -98,7 +98,7 @@ archive_write_new(void) struct archive_write *a; unsigned char *nulls; - a = (struct archive_write *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_WRITE_MAGIC; @@ -114,7 +114,7 @@ archive_write_new(void) /* Initialize a block of nulls for padding purposes. */ a->null_length = 1024; - nulls = (unsigned char *)calloc(a->null_length, sizeof(unsigned char)); + nulls = calloc(a->null_length, sizeof(unsigned char)); if (nulls == NULL) { free(a); return (NULL); @@ -367,8 +367,8 @@ archive_write_client_open(struct archive_write_filter *f) archive_write_get_bytes_in_last_block(f->archive); buffer_size = f->bytes_per_block; - state = (struct archive_none *)calloc(1, sizeof(*state)); - buffer = (char *)malloc(buffer_size); + state = calloc(1, sizeof(*state)); + buffer = malloc(buffer_size); if (state == NULL || buffer == NULL) { free(state); free(buffer); diff --git a/libarchive/archive_write_add_filter_b64encode.c b/libarchive/archive_write_add_filter_b64encode.c index 3aca6d81d..2c361bfb9 100644 --- a/libarchive/archive_write_add_filter_b64encode.c +++ b/libarchive/archive_write_add_filter_b64encode.c @@ -85,7 +85,7 @@ archive_write_add_filter_b64encode(struct archive *_a) archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, ARCHIVE_STATE_NEW, "archive_write_add_filter_b64encode"); - state = (struct private_b64encode *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for b64encode filter"); diff --git a/libarchive/archive_write_add_filter_bzip2.c b/libarchive/archive_write_add_filter_bzip2.c index bc0ef2607..0726f0893 100644 --- a/libarchive/archive_write_add_filter_bzip2.c +++ b/libarchive/archive_write_add_filter_bzip2.c @@ -177,8 +177,7 @@ archive_compressor_bzip2_open(struct archive_write_filter *f) bs -= bs % bpb; } data->compressed_buffer_size = bs; - data->compressed - = (char *)malloc(data->compressed_buffer_size); + data->compressed = malloc(data->compressed_buffer_size); if (data->compressed == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for compression buffer"); diff --git a/libarchive/archive_write_add_filter_compress.c b/libarchive/archive_write_add_filter_compress.c index e547e8872..a54a85754 100644 --- a/libarchive/archive_write_add_filter_compress.c +++ b/libarchive/archive_write_add_filter_compress.c @@ -150,7 +150,7 @@ archive_compressor_compress_open(struct archive_write_filter *f) f->code = ARCHIVE_FILTER_COMPRESS; f->name = "compress"; - state = (struct private_data *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for compression"); diff --git a/libarchive/archive_write_add_filter_gzip.c b/libarchive/archive_write_add_filter_gzip.c index a7fabbfa6..71d789126 100644 --- a/libarchive/archive_write_add_filter_gzip.c +++ b/libarchive/archive_write_add_filter_gzip.c @@ -194,8 +194,7 @@ archive_compressor_gzip_open(struct archive_write_filter *f) bs -= bs % bpb; } data->compressed_buffer_size = bs; - data->compressed - = (unsigned char *)malloc(data->compressed_buffer_size); + data->compressed = malloc(data->compressed_buffer_size); if (data->compressed == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for compression buffer"); diff --git a/libarchive/archive_write_add_filter_uuencode.c b/libarchive/archive_write_add_filter_uuencode.c index 42dec8def..50bfeb6ea 100644 --- a/libarchive/archive_write_add_filter_uuencode.c +++ b/libarchive/archive_write_add_filter_uuencode.c @@ -74,7 +74,7 @@ archive_write_add_filter_uuencode(struct archive *_a) archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, ARCHIVE_STATE_NEW, "archive_write_add_filter_uu"); - state = (struct private_uuencode *)calloc(1, sizeof(*state)); + state = calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for uuencode filter"); diff --git a/libarchive/archive_write_add_filter_xz.c b/libarchive/archive_write_add_filter_xz.c index e09d5e917..098f0c955 100644 --- a/libarchive/archive_write_add_filter_xz.c +++ b/libarchive/archive_write_add_filter_xz.c @@ -319,8 +319,7 @@ archive_compressor_xz_open(struct archive_write_filter *f) bs -= bs % bpb; } data->compressed_buffer_size = bs; - data->compressed - = (unsigned char *)malloc(data->compressed_buffer_size); + data->compressed = malloc(data->compressed_buffer_size); if (data->compressed == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for compression buffer"); diff --git a/libarchive/archive_write_add_filter_zstd.c b/libarchive/archive_write_add_filter_zstd.c index 7ea3d18c9..c0a6e5a37 100644 --- a/libarchive/archive_write_add_filter_zstd.c +++ b/libarchive/archive_write_add_filter_zstd.c @@ -372,8 +372,7 @@ archive_compressor_zstd_open(struct archive_write_filter *f) } data->out.size = bs; data->out.pos = 0; - data->out.dst - = (unsigned char *)malloc(data->out.size); + data->out.dst = malloc(data->out.size); if (data->out.dst == NULL) { archive_set_error(f->archive, ENOMEM, "Can't allocate data for compression buffer"); diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c index 098a8fe41..d9619fe2d 100644 --- a/libarchive/archive_write_disk_posix.c +++ b/libarchive/archive_write_disk_posix.c @@ -1991,7 +1991,7 @@ archive_write_disk_new(void) { struct archive_write_disk *a; - a = (struct archive_write_disk *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_WRITE_DISK_MAGIC; @@ -2758,7 +2758,7 @@ new_fixup(struct archive_write_disk *a, const char *pathname) { struct fixup_entry *fe; - fe = (struct fixup_entry *)calloc(1, sizeof(struct fixup_entry)); + fe = calloc(1, sizeof(struct fixup_entry)); if (fe == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate memory for a fixup"); diff --git a/libarchive/archive_write_disk_windows.c b/libarchive/archive_write_disk_windows.c index f0de73131..086f79693 100644 --- a/libarchive/archive_write_disk_windows.c +++ b/libarchive/archive_write_disk_windows.c @@ -1389,7 +1389,7 @@ archive_write_disk_new(void) { struct archive_write_disk *a; - a = (struct archive_write_disk *)calloc(1, sizeof(*a)); + a = calloc(1, sizeof(*a)); if (a == NULL) return (NULL); a->archive.magic = ARCHIVE_WRITE_DISK_MAGIC; @@ -2079,7 +2079,7 @@ new_fixup(struct archive_write_disk *a, const wchar_t *pathname) { struct fixup_entry *fe; - fe = (struct fixup_entry *)calloc(1, sizeof(struct fixup_entry)); + fe = calloc(1, sizeof(struct fixup_entry)); if (fe == NULL) return (NULL); fe->next = a->fixup_list; diff --git a/libarchive/archive_write_open_fd.c b/libarchive/archive_write_open_fd.c index a58ae0479..8a3f68d06 100644 --- a/libarchive/archive_write_open_fd.c +++ b/libarchive/archive_write_open_fd.c @@ -62,7 +62,7 @@ archive_write_open_fd(struct archive *a, int fd) { struct write_fd_data *mine; - mine = (struct write_fd_data *)malloc(sizeof(*mine)); + mine = malloc(sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_open_file.c b/libarchive/archive_write_open_file.c index d787da3af..4c6ebfb22 100644 --- a/libarchive/archive_write_open_file.c +++ b/libarchive/archive_write_open_file.c @@ -59,7 +59,7 @@ archive_write_open_FILE(struct archive *a, FILE *f) { struct write_FILE_data *mine; - mine = (struct write_FILE_data *)malloc(sizeof(*mine)); + mine = malloc(sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_open_filename.c b/libarchive/archive_write_open_filename.c index 7dc73d55f..6842b98d2 100644 --- a/libarchive/archive_write_open_filename.c +++ b/libarchive/archive_write_open_filename.c @@ -98,7 +98,7 @@ open_filename(struct archive *a, int mbs_fn, const void *filename) struct write_file_data *mine; int r; - mine = (struct write_file_data *)calloc(1, sizeof(*mine)); + mine = calloc(1, sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_open_memory.c b/libarchive/archive_write_open_memory.c index 609cc47d9..e31650447 100644 --- a/libarchive/archive_write_open_memory.c +++ b/libarchive/archive_write_open_memory.c @@ -52,7 +52,7 @@ archive_write_open_memory(struct archive *a, void *buff, size_t buffSize, size_t { struct write_memory_data *mine; - mine = (struct write_memory_data *)calloc(1, sizeof(*mine)); + mine = calloc(1, sizeof(*mine)); if (mine == NULL) { archive_set_error(a, ENOMEM, "No memory"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_ar.c b/libarchive/archive_write_set_format_ar.c index 38689d89b..e5e9c806b 100644 --- a/libarchive/archive_write_set_format_ar.c +++ b/libarchive/archive_write_set_format_ar.c @@ -126,7 +126,7 @@ archive_write_set_format_ar(struct archive_write *a) if (a->format_free != NULL) (a->format_free)(a); - ar = (struct ar_w *)calloc(1, sizeof(*ar)); + ar = calloc(1, sizeof(*ar)); if (ar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ar data"); return (ARCHIVE_FATAL); @@ -246,7 +246,7 @@ archive_write_ar_header(struct archive_write *a, struct archive_entry *entry) return (ARCHIVE_WARN); } - se = (char *)malloc(strlen(filename) + 3); + se = malloc(strlen(filename) + 3); if (se == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate filename buffer"); @@ -379,7 +379,7 @@ archive_write_ar_data(struct archive_write *a, const void *buff, size_t s) return (ARCHIVE_WARN); } - ar->strtab = (char *)malloc(s + 1); + ar->strtab = malloc(s + 1); if (ar->strtab == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate strtab buffer"); diff --git a/libarchive/archive_write_set_format_cpio_binary.c b/libarchive/archive_write_set_format_cpio_binary.c index a22d06ea3..aefb2ca6f 100644 --- a/libarchive/archive_write_set_format_cpio_binary.c +++ b/libarchive/archive_write_set_format_cpio_binary.c @@ -185,7 +185,7 @@ archive_write_set_format_cpio_binary(struct archive *_a, int format) if (a->format_free != NULL) (a->format_free)(a); - cpio = (struct cpio *)calloc(1, sizeof(*cpio)); + cpio = calloc(1, sizeof(*cpio)); if (cpio == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_cpio_newc.c b/libarchive/archive_write_set_format_cpio_newc.c index 006736a1f..254d5a990 100644 --- a/libarchive/archive_write_set_format_cpio_newc.c +++ b/libarchive/archive_write_set_format_cpio_newc.c @@ -116,7 +116,7 @@ archive_write_set_format_cpio_newc(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - cpio = (struct cpio *)calloc(1, sizeof(*cpio)); + cpio = calloc(1, sizeof(*cpio)); if (cpio == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_cpio_odc.c b/libarchive/archive_write_set_format_cpio_odc.c index 6dce78b45..c72c6b279 100644 --- a/libarchive/archive_write_set_format_cpio_odc.c +++ b/libarchive/archive_write_set_format_cpio_odc.c @@ -110,7 +110,7 @@ archive_write_set_format_cpio_odc(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - cpio = (struct cpio *)calloc(1, sizeof(*cpio)); + cpio = calloc(1, sizeof(*cpio)); if (cpio == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_gnutar.c b/libarchive/archive_write_set_format_gnutar.c index 8979078ee..04b190de4 100644 --- a/libarchive/archive_write_set_format_gnutar.c +++ b/libarchive/archive_write_set_format_gnutar.c @@ -174,7 +174,7 @@ archive_write_set_format_gnutar(struct archive *_a) struct archive_write *a = (struct archive_write *)_a; struct gnutar *gnutar; - gnutar = (struct gnutar *)calloc(1, sizeof(*gnutar)); + gnutar = calloc(1, sizeof(*gnutar)); if (gnutar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate gnutar data"); diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c index 4aace4682..6e35f705e 100644 --- a/libarchive/archive_write_set_format_pax.c +++ b/libarchive/archive_write_set_format_pax.c @@ -138,7 +138,7 @@ archive_write_set_format_pax(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - pax = (struct pax *)calloc(1, sizeof(*pax)); + pax = calloc(1, sizeof(*pax)); if (pax == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate pax data"); @@ -1944,7 +1944,7 @@ url_encode(const char *in) } } - out = (char *)malloc(out_len + 1); + out = malloc(out_len + 1); if (out == NULL) return (NULL); @@ -1982,7 +1982,7 @@ base64_encode(const char *s, size_t len) char *d, *out; /* 3 bytes becomes 4 chars, but round up and allow for trailing NUL */ - out = (char *)malloc((len * 4 + 2) / 3 + 1); + out = malloc((len * 4 + 2) / 3 + 1); if (out == NULL) return (NULL); d = out; @@ -2037,7 +2037,7 @@ _sparse_list_add_block(struct pax *pax, int64_t offset, int64_t length, { struct sparse_block *sb; - sb = (struct sparse_block *)malloc(sizeof(*sb)); + sb = malloc(sizeof(*sb)); if (sb == NULL) return (ARCHIVE_FATAL); sb->next = NULL; diff --git a/libarchive/archive_write_set_format_raw.c b/libarchive/archive_write_set_format_raw.c index feff93697..ff3e9ae0e 100644 --- a/libarchive/archive_write_set_format_raw.c +++ b/libarchive/archive_write_set_format_raw.c @@ -58,7 +58,7 @@ archive_write_set_format_raw(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - raw = (struct raw *)calloc(1, sizeof(*raw)); + raw = calloc(1, sizeof(*raw)); if (raw == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate raw data"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_shar.c b/libarchive/archive_write_set_format_shar.c index da2bc0ca3..be9f78ce9 100644 --- a/libarchive/archive_write_set_format_shar.c +++ b/libarchive/archive_write_set_format_shar.c @@ -113,7 +113,7 @@ archive_write_set_format_shar(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - shar = (struct shar *)calloc(1, sizeof(*shar)); + shar = calloc(1, sizeof(*shar)); if (shar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate shar data"); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_write_set_format_ustar.c b/libarchive/archive_write_set_format_ustar.c index 9dc6e71f1..09b71fe66 100644 --- a/libarchive/archive_write_set_format_ustar.c +++ b/libarchive/archive_write_set_format_ustar.c @@ -183,7 +183,7 @@ archive_write_set_format_ustar(struct archive *_a) return (ARCHIVE_FATAL); } - ustar = (struct ustar *)calloc(1, sizeof(*ustar)); + ustar = calloc(1, sizeof(*ustar)); if (ustar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate ustar data"); diff --git a/libarchive/archive_write_set_format_v7tar.c b/libarchive/archive_write_set_format_v7tar.c index ffb420f08..2598fc076 100644 --- a/libarchive/archive_write_set_format_v7tar.c +++ b/libarchive/archive_write_set_format_v7tar.c @@ -160,7 +160,7 @@ archive_write_set_format_v7tar(struct archive *_a) return (ARCHIVE_FATAL); } - v7tar = (struct v7tar *)calloc(1, sizeof(*v7tar)); + v7tar = calloc(1, sizeof(*v7tar)); if (v7tar == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate v7tar data"); diff --git a/libarchive/archive_write_set_format_zip.c b/libarchive/archive_write_set_format_zip.c index ad3e90759..a9f287730 100644 --- a/libarchive/archive_write_set_format_zip.c +++ b/libarchive/archive_write_set_format_zip.c @@ -456,7 +456,7 @@ archive_write_set_format_zip(struct archive *_a) if (a->format_free != NULL) (a->format_free)(a); - zip = (struct zip *) calloc(1, sizeof(*zip)); + zip = calloc(1, sizeof(*zip)); if (zip == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate zip data"); diff --git a/libarchive/test/test_archive_read_multiple_data_objects.c b/libarchive/test/test_archive_read_multiple_data_objects.c index f5adb5b7b..f9f75d96f 100644 --- a/libarchive/test/test_archive_read_multiple_data_objects.c +++ b/libarchive/test/test_archive_read_multiple_data_objects.c @@ -184,7 +184,7 @@ file_open(struct archive *a, void *data) mydata->fd = open(mydata->filename, O_RDONLY | O_BINARY); if (mydata->fd >= 0) { - if ((mydata->buffer = (void*)calloc(BLOCK_SIZE, 1)) == NULL) + if ((mydata->buffer = calloc(BLOCK_SIZE, 1)) == NULL) return (ARCHIVE_FAILED); } } @@ -280,28 +280,21 @@ test_customized_multiple_data_objects(void) for (i = 0; filename != NULL;) { - assert((mydata = (struct mydata *)calloc(1, sizeof(*mydata))) != NULL); + assert((mydata = calloc(1, sizeof(*mydata))) != NULL); if (mydata == NULL) { assertEqualInt(ARCHIVE_OK, archive_read_free(a)); return; } - assert((mydata->filename = - (char *)calloc(strlen(filename) + 1, sizeof(char))) != NULL); - if (mydata->filename == NULL) { - free(mydata); - assertEqualInt(ARCHIVE_OK, archive_read_free(a)); - return; - } - strcpy(mydata->filename, filename); + assert((mydata->filename = strdup(filename)) != NULL); mydata->fd = -1; filename = reffiles[++i]; assertA(0 == archive_read_append_callback_data(a, mydata)); } - assertA(0 == archive_read_set_open_callback(a, file_open)); - assertA(0 == archive_read_set_read_callback(a, file_read)); - assertA(0 == archive_read_set_skip_callback(a, file_skip)); - assertA(0 == archive_read_set_close_callback(a, file_close)); - assertA(0 == archive_read_set_switch_callback(a, file_switch)); + assertA(0 == archive_read_set_open_callback(a, file_open)); + assertA(0 == archive_read_set_read_callback(a, file_read)); + assertA(0 == archive_read_set_skip_callback(a, file_skip)); + assertA(0 == archive_read_set_close_callback(a, file_close)); + assertA(0 == archive_read_set_switch_callback(a, file_switch)); assertA(0 == archive_read_set_seek_callback(a, file_seek)); assertA(0 == archive_read_open1(a)); diff --git a/libarchive/test/test_archive_string.c b/libarchive/test/test_archive_string.c index f8f1e337b..30f7a800e 100644 --- a/libarchive/test/test_archive_string.c +++ b/libarchive/test/test_archive_string.c @@ -405,7 +405,7 @@ DEFINE_TEST(test_archive_string_sort) srand((unsigned int)time(NULL)); size = sizeof(strings) / sizeof(char *); - assert((test_strings = (char **)calloc(size, sizeof(char *))) != NULL); + assert((test_strings = calloc(size, sizeof(char *))) != NULL); for (i = 0; i < (size - 1); i++) assert((test_strings[i] = strdup(strings[i])) != NULL); diff --git a/libarchive/test/test_archive_write_add_filter_by_name.c b/libarchive/test/test_archive_write_add_filter_by_name.c index c80e161c3..9d7e58d6f 100644 --- a/libarchive/test/test_archive_write_add_filter_by_name.c +++ b/libarchive/test/test_archive_write_add_filter_by_name.c @@ -36,7 +36,7 @@ test_filter_by_name(const char *filter_name, int filter_code, char *buff; int r; - assert((buff = calloc(buffsize, sizeof(char))) != NULL); + assert((buff = calloc(buffsize, sizeof(*buff))) != NULL); if (buff == NULL) return; diff --git a/libarchive/test/test_read_format_xar.c b/libarchive/test/test_read_format_xar.c index 41cbd7dab..5c306e585 100644 --- a/libarchive/test/test_read_format_xar.c +++ b/libarchive/test/test_read_format_xar.c @@ -620,7 +620,7 @@ has the corresponding timestamps unset. archive_write_set_format_xar(a); archive_write_add_filter_none(a); size_t used, buffsize = 1500; - char *buff = (char*) malloc(buffsize); + char *buff = malloc(buffsize); archive_write_open_memory(a, buff, buffsize, &used); struct archive_entry *ae = archive_entry_new(); @@ -827,7 +827,7 @@ static void verifyB(unsigned char *d, size_t s) { assertA(0 == archive_read_next_header(a, &entry)); buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); - buf = (unsigned char*) malloc(buf_size); + buf = malloc(buf_size); assertA(NULL != buf); assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); @@ -836,7 +836,7 @@ static void verifyB(unsigned char *d, size_t s) { assertA(0 == archive_read_next_header(a, &entry)); buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); - buf = (unsigned char*) malloc(buf_size); + buf = malloc(buf_size); assertA(NULL != buf); assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); diff --git a/libarchive/test/test_read_format_zip_nested.c b/libarchive/test/test_read_format_zip_nested.c index 95945638b..b32e4bb94 100644 --- a/libarchive/test/test_read_format_zip_nested.c +++ b/libarchive/test/test_read_format_zip_nested.c @@ -49,7 +49,7 @@ DEFINE_TEST(test_read_format_zip_nested) /* Save contents of inner Zip. */ innerLength = (size_t)archive_entry_size(ae); - inner = calloc(innerLength, sizeof(char)); + inner = calloc(innerLength, sizeof(*inner)); assertEqualInt(innerLength, archive_read_data(a, inner, innerLength)); assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); diff --git a/libarchive/test/test_read_truncated_filter.c b/libarchive/test/test_read_truncated_filter.c index 9c5348d93..fc8ddf51b 100644 --- a/libarchive/test/test_read_truncated_filter.c +++ b/libarchive/test/test_read_truncated_filter.c @@ -43,12 +43,12 @@ test_truncation(const char *compression, int i, r, use_prog; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_tar_large.c b/libarchive/test/test_tar_large.c index 7ff3fee17..c1f379162 100644 --- a/libarchive/test/test_tar_large.c +++ b/libarchive/test/test_tar_large.c @@ -99,7 +99,7 @@ memory_write(struct archive *a, void *_private, const void *buff, size_t size) } else { /* Yes, we're assuming the very first write is metadata. */ /* It's header or metadata, copy and save it. */ - block = (struct memblock *)malloc(sizeof(*block)); + block = malloc(sizeof(*block)); memset(block, 0, sizeof(*block)); block->size = size; block->buff = malloc(size); diff --git a/libarchive/test/test_write_filter_b64encode.c b/libarchive/test/test_write_filter_b64encode.c index e33ff8a98..d7c4763b1 100644 --- a/libarchive/test/test_write_filter_b64encode.c +++ b/libarchive/test/test_write_filter_b64encode.c @@ -41,10 +41,10 @@ DEFINE_TEST(test_write_filter_b64encode) int i; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); memset(data, 0, datasize); /* diff --git a/libarchive/test/test_write_filter_bzip2.c b/libarchive/test/test_write_filter_bzip2.c index f48bcc213..20ca0d9a7 100644 --- a/libarchive/test/test_write_filter_bzip2.c +++ b/libarchive/test/test_write_filter_bzip2.c @@ -43,12 +43,12 @@ DEFINE_TEST(test_write_filter_bzip2) int i, r, use_prog; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_compress.c b/libarchive/test/test_write_filter_compress.c index f7b9565b7..6a0c022c4 100644 --- a/libarchive/test/test_write_filter_compress.c +++ b/libarchive/test/test_write_filter_compress.c @@ -43,10 +43,10 @@ DEFINE_TEST(test_write_filter_compress) int i; buffsize = 1000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); memset(data, 0, datasize); assert((a = archive_write_new()) != NULL); diff --git a/libarchive/test/test_write_filter_gzip.c b/libarchive/test/test_write_filter_gzip.c index ae81a4fc5..14b14ecdd 100644 --- a/libarchive/test/test_write_filter_gzip.c +++ b/libarchive/test/test_write_filter_gzip.c @@ -44,12 +44,12 @@ DEFINE_TEST(test_write_filter_gzip) int i, r, use_prog = 0; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_gzip_timestamp.c b/libarchive/test/test_write_filter_gzip_timestamp.c index ee29f0342..a148f818d 100644 --- a/libarchive/test/test_write_filter_gzip_timestamp.c +++ b/libarchive/test/test_write_filter_gzip_timestamp.c @@ -37,12 +37,12 @@ DEFINE_TEST(test_write_filter_gzip_timestamp) int r, use_prog = 0; buffsize = 10000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_lrzip.c b/libarchive/test/test_write_filter_lrzip.c index 2efc2ec28..8da7ae39a 100644 --- a/libarchive/test/test_write_filter_lrzip.c +++ b/libarchive/test/test_write_filter_lrzip.c @@ -46,10 +46,10 @@ DEFINE_TEST(test_write_filter_lrzip) } buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); memset(data, 0, datasize); /* diff --git a/libarchive/test/test_write_filter_lz4.c b/libarchive/test/test_write_filter_lz4.c index 97a80321d..74a910b53 100644 --- a/libarchive/test/test_write_filter_lz4.c +++ b/libarchive/test/test_write_filter_lz4.c @@ -58,10 +58,10 @@ DEFINE_TEST(test_write_filter_lz4) assertEqualInt(ARCHIVE_OK, archive_write_free(a)); buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)calloc(datasize, 1))); + assert(NULL != (data = calloc(datasize, 1))); filecount = 10; /* @@ -302,10 +302,10 @@ test_options(const char *options) assertEqualInt(ARCHIVE_OK, archive_write_free(a)); buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)calloc(datasize, 1))); + assert(NULL != (data = calloc(datasize, 1))); filecount = 10; /* diff --git a/libarchive/test/test_write_filter_lzip.c b/libarchive/test/test_write_filter_lzip.c index 8d6544668..631fd96bd 100644 --- a/libarchive/test/test_write_filter_lzip.c +++ b/libarchive/test/test_write_filter_lzip.c @@ -43,12 +43,12 @@ DEFINE_TEST(test_write_filter_lzip) int i, r; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_lzma.c b/libarchive/test/test_write_filter_lzma.c index d7c0c5b21..9bb2d8eb7 100644 --- a/libarchive/test/test_write_filter_lzma.c +++ b/libarchive/test/test_write_filter_lzma.c @@ -42,12 +42,12 @@ DEFINE_TEST(test_write_filter_lzma) int i, r; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_lzop.c b/libarchive/test/test_write_filter_lzop.c index 87843f49b..8b74d224d 100644 --- a/libarchive/test/test_write_filter_lzop.c +++ b/libarchive/test/test_write_filter_lzop.c @@ -52,10 +52,10 @@ DEFINE_TEST(test_write_filter_lzop) } buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)calloc(datasize, 1))); + assert(NULL != (data = calloc(datasize, 1))); filecount = 10; /* diff --git a/libarchive/test/test_write_filter_uuencode.c b/libarchive/test/test_write_filter_uuencode.c index 7eda278b3..fbd052088 100644 --- a/libarchive/test/test_write_filter_uuencode.c +++ b/libarchive/test/test_write_filter_uuencode.c @@ -41,10 +41,10 @@ DEFINE_TEST(test_write_filter_uuencode) int i; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); memset(data, 0, datasize); /* diff --git a/libarchive/test/test_write_filter_xz.c b/libarchive/test/test_write_filter_xz.c index db4e5dafa..6baa0473b 100644 --- a/libarchive/test/test_write_filter_xz.c +++ b/libarchive/test/test_write_filter_xz.c @@ -43,12 +43,12 @@ DEFINE_TEST(test_write_filter_xz) int i, r; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_filter_zstd.c b/libarchive/test/test_write_filter_zstd.c index 07fbaa8ea..41451ca86 100644 --- a/libarchive/test/test_write_filter_zstd.c +++ b/libarchive/test/test_write_filter_zstd.c @@ -37,12 +37,12 @@ DEFINE_TEST(test_write_filter_zstd) int i, r; buffsize = 2000000; - assert(NULL != (buff = (char *)malloc(buffsize))); + assert(NULL != (buff = malloc(buffsize))); if (buff == NULL) return; datasize = 10000; - assert(NULL != (data = (char *)malloc(datasize))); + assert(NULL != (data = malloc(datasize))); if (data == NULL) { free(buff); return; diff --git a/libarchive/test/test_write_format_iso9660_filename.c b/libarchive/test/test_write_format_iso9660_filename.c index 713883bdc..ca617c3a9 100644 --- a/libarchive/test/test_write_format_iso9660_filename.c +++ b/libarchive/test/test_write_format_iso9660_filename.c @@ -321,7 +321,7 @@ DEFINE_TEST(test_write_format_iso9660_filename) */ fcnt = create_iso_image(buff, buffsize, &used, NULL); - fns.names = (char **)malloc(sizeof(char *) * fcnt); + fns.names = malloc(sizeof(char *) * fcnt); assert(fns.names != NULL); if (fns.names == NULL) { free(buff); diff --git a/libarchive/test/test_write_format_zip_large.c b/libarchive/test/test_write_format_zip_large.c index 90bd16aaa..d08dae46d 100644 --- a/libarchive/test/test_write_format_zip_large.c +++ b/libarchive/test/test_write_format_zip_large.c @@ -96,7 +96,7 @@ memory_write(struct archive *a, void *_private, const void *buff, size_t size) } else { /* Yes, we're assuming the very first write is metadata. */ /* It's header or metadata, copy and save it. */ - block = (struct fileblock *)malloc(sizeof(*block)); + block = malloc(sizeof(*block)); memset(block, 0, sizeof(*block)); block->size = (int)size; block->buff = malloc(size); diff --git a/tar/creation_set.c b/tar/creation_set.c index 5cd1232b7..3abd11358 100644 --- a/tar/creation_set.c +++ b/tar/creation_set.c @@ -134,7 +134,7 @@ _cset_add_filter(struct creation_set *cset, int program, const char *filter) struct filter_set *new_ptr; char *new_filter; - new_ptr = (struct filter_set *)realloc(cset->filters, + new_ptr = realloc(cset->filters, sizeof(*cset->filters) * (cset->filter_count + 1)); if (new_ptr == NULL) lafe_errc(1, 0, "No memory"); diff --git a/test_utils/test_common.h b/test_utils/test_common.h index 8e1ec8243..9a20224a2 100644 --- a/test_utils/test_common.h +++ b/test_utils/test_common.h @@ -48,6 +48,9 @@ #endif #include /* Windows requires this before sys/stat.h */ +#if !HAVE_SUSECONDS_T +#define suseconds_t long +#endif #include #if HAVE_DIRENT_H @@ -313,7 +316,7 @@ int assertion_non_empty_file(const char *, int, const char *); int assertion_set_nodump(const char *, int, const char *); int assertion_text_file_contents(const char *, int, const char *buff, const char *f); int assertion_umask(const char *, int, int); -int assertion_utimes(const char *, int, const char *, long, long, long, long ); +int assertion_utimes(const char *, int, const char *, time_t, suseconds_t, time_t, suseconds_t); int assertion_version(const char*, int, const char *, const char *); void skipping_setup(const char *, int); diff --git a/test_utils/test_main.c b/test_utils/test_main.c index ae5e74225..76fcd7940 100644 --- a/test_utils/test_main.c +++ b/test_utils/test_main.c @@ -85,6 +85,10 @@ #include #endif +#ifndef nitems +#define nitems(arr) (sizeof(arr) / sizeof((arr)[0])) +#endif + /* * * Windows support routines @@ -236,10 +240,10 @@ my_CreateSymbolicLinkA(const char *linkname, const char *target, if (tlen == 0 || llen == 0) return (0); - tgt = malloc((tlen + 1) * sizeof(char)); + tgt = malloc(tlen + 1); if (tgt == NULL) return (0); - src = malloc((llen + 1) * sizeof(char)); + src = malloc(llen + 1); if (src == NULL) { free(tgt); return (0); @@ -1240,16 +1244,19 @@ assertion_file_contains_lines_any_order(const char *file, int line, } expected_count = i; if (expected_count) { - expected = malloc(sizeof(char *) * expected_count); + expected = calloc(expected_count, sizeof(*expected)); if (expected == NULL) { failure_start(pathname, line, "Can't allocate memory"); failure_finish(NULL); - free(expected); - free(buff); - return (0); + goto cleanup; } for (i = 0; lines[i] != NULL; ++i) { expected[i] = strdup(lines[i]); + if (expected[i] == NULL) { + failure_start(pathname, line, "Can't allocate memory"); + failure_finish(NULL); + goto cleanup; + } } } @@ -1267,9 +1274,7 @@ assertion_file_contains_lines_any_order(const char *file, int line, if (actual == NULL) { failure_start(pathname, line, "Can't allocate memory"); failure_finish(NULL); - free(expected); - free(buff); - return (0); + goto cleanup; } for (j = 0, p = buff; p < buff + buff_size; p += 1 + strlen(p)) { @@ -1282,8 +1287,6 @@ assertion_file_contains_lines_any_order(const char *file, int line, /* Erase matching lines from both lists */ for (i = 0; i < expected_count; ++i) { - if (expected[i] == NULL) - continue; for (j = 0; j < actual_count; ++j) { if (actual[j] == NULL) continue; @@ -1306,9 +1309,9 @@ assertion_file_contains_lines_any_order(const char *file, int line, ++actual_failure; } if (expected_failure == 0 && actual_failure == 0) { - free(buff); - free(expected); free(actual); + free(expected); + free(buff); return (1); } failure_start(file, line, "File doesn't match: %s", pathname); @@ -1316,6 +1319,7 @@ assertion_file_contains_lines_any_order(const char *file, int line, if (expected[i] != NULL) { logprintf(" Expected but not present: %s\n", expected[i]); free(expected[i]); + expected[i] = NULL; } } for (j = 0; j < actual_count; ++j) { @@ -1323,9 +1327,15 @@ assertion_file_contains_lines_any_order(const char *file, int line, logprintf(" Present but not expected: %s\n", actual[j]); } failure_finish(NULL); - free(buff); - free(expected); +cleanup: free(actual); + if (expected != NULL) { + for (i = 0; i < expected_count; ++i) + if (expected[i] != NULL) + free(expected[i]); + free(expected); + } + free(buff); return (0); } @@ -1769,16 +1779,17 @@ is_symlink(const char *file, int line, FILE_FLAG_OPEN_REPARSE_POINT; /* Replace slashes with backslashes in pathname */ - pn = malloc((strlen(pathname) + 1) * sizeof(char)); - p = pathname; - s = pn; - while(*p != '\0') { - if(*p == '/') + pn = malloc(strlen(pathname) + 1); + if (pn == NULL) { + failure_start(file, line, "Can't allocate memory"); + failure_finish(NULL); + return (0); + } + for (p = pathname, s = pn; *p != '\0'; p++, s++) { + if (*p == '/') *s = '\\'; else *s = *p; - p++; - s++; } *s = '\0'; @@ -2086,8 +2097,8 @@ assertion_umask(const char *file, int line, int mask) /* Set times, report failures. */ int -assertion_utimes(const char *file, int line, - const char *pathname, long at, long at_nsec, long mt, long mt_nsec) +assertion_utimes(const char *file, int line, const char *pathname, + time_t at, suseconds_t at_nsec, time_t mt, suseconds_t mt_nsec) { int r; @@ -2953,7 +2964,6 @@ setTestAcl(const char *path) acl_permset_t permset; const uid_t uid = 1; uuid_t uuid; - int i; const acl_perm_t acl_perms[] = { ACL_READ_DATA, ACL_WRITE_DATA, @@ -2995,7 +3005,7 @@ setTestAcl(const char *path) failure("acl_get_permset() error: %s", strerror(errno)); if (assertEqualInt(r, 0) == 0) goto testacl_free; - for (i = 0; i < (int)(sizeof(acl_perms) / sizeof(acl_perms[0])); i++) { + for (size_t i = 0; i < nitems(acl_perms); i++) { r = acl_add_perm(permset, acl_perms[i]); failure("acl_add_perm() error: %s", strerror(errno)); if (assertEqualInt(r, 0) == 0) @@ -3645,7 +3655,7 @@ test_run(int i, const char *tmpdir) static void usage(const char *program) { - static const int limit = sizeof(tests) / sizeof(tests[0]); + static const int limit = nitems(tests); int i; printf("Usage: %s [options] ...\n", program); @@ -3877,10 +3887,11 @@ get_test_set(int *test_set, int limit, const char *test) int main(int argc, char **argv) { - static const int limit = sizeof(tests) / sizeof(tests[0]); - int test_set[sizeof(tests) / sizeof(tests[0])]; + static const int limit = nitems(tests); + int test_set[nitems(tests)]; int i = 0, j = 0, tests_run = 0, tests_failed = 0, option; size_t testprogdir_len; + size_t tmplen; #ifdef PROGRAM size_t tmp2_len; #endif @@ -3925,7 +3936,7 @@ main(int argc, char **argv) */ progname = p = argv[0]; testprogdir_len = strlen(progname) + 1; - if ((testprogdir = (char *)malloc(testprogdir_len)) == NULL) + if ((testprogdir = malloc(testprogdir_len)) == NULL) { fprintf(stderr, "ERROR: Out of memory."); exit(1); @@ -3953,7 +3964,7 @@ main(int argc, char **argv) #endif { /* Fixup path for relative directories. */ - if ((testprogdir = (char *)realloc(testprogdir, + if ((testprogdir = realloc(testprogdir, strlen(pwd) + 1 + strlen(testprogdir) + 1)) == NULL) { fprintf(stderr, "ERROR: Out of memory."); @@ -3980,6 +3991,9 @@ main(int argc, char **argv) tmp = getenv("TEMPDIR"); else tmp = "/tmp"; + tmplen = strlen(tmp); + while (tmplen > 0 && tmp[tmplen - 1] == '/') + tmplen--; /* Allow -d to be controlled through the environment. */ if (getenv(ENVBASE "_DEBUG") != NULL) @@ -4073,7 +4087,7 @@ main(int argc, char **argv) if (testprogfile == NULL) { tmp2_len = strlen(testprogdir) + 1 + strlen(PROGRAM) + 1; - if ((tmp2 = (char *)malloc(tmp2_len)) == NULL) + if ((tmp2 = malloc(tmp2_len)) == NULL) { fprintf(stderr, "ERROR: Out of memory."); exit(1); @@ -4132,16 +4146,16 @@ main(int argc, char **argv) #endif strftime(tmpdir_timestamp, sizeof(tmpdir_timestamp), "%Y-%m-%dT%H.%M.%S", tmptr); - if ((strlen(tmp) + 1 + strlen(progname) + 1 + - strlen(tmpdir_timestamp) + 1 + 3) > - (sizeof(tmpdir) / sizeof(char))) { + if (tmplen + 1 + strlen(progname) + 1 + + strlen(tmpdir_timestamp) + 1 + 3 >= + nitems(tmpdir)) { fprintf(stderr, "ERROR: Temp directory pathname too long\n"); exit(1); } - snprintf(tmpdir, sizeof(tmpdir), "%s/%s.%s-%03d", tmp, - progname, tmpdir_timestamp, i); - if (assertMakeDir(tmpdir,0755)) + snprintf(tmpdir, sizeof(tmpdir), "%.*s/%s.%s-%03d", + (int)tmplen, tmp, progname, tmpdir_timestamp, i); + if (assertMakeDir(tmpdir, 0755)) break; if (i >= 999) { fprintf(stderr,