From b29f23f7e7c791e7d8786de93d630a12e4250c71 Mon Sep 17 00:00:00 2001 From: Rahul Chaudhry Date: Wed, 9 Nov 2016 13:17:01 -0800 Subject: [PATCH] Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap. static_cast is preferable to reinterpret_cast when casting from void* pointers returned by malloc/calloc/realloc/mmap calls. Discovered while looking at compiler warnings (b/26936282). Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma Change-Id: Iaffd537784aa857108f6981fdfd82d0496eb5592 Merged-In: I151642d5a60c94f312d0611576ad0143c249ba3d --- applypatch/imgdiff.cpp | 32 ++++++++++++++++---------------- minadbd/minadbd_services.cpp | 2 +- minui/graphics.cpp | 6 +++--- minui/graphics_adf.cpp | 8 ++++---- minui/graphics_fbdev.cpp | 2 +- minui/resources.cpp | 8 ++++---- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/applypatch/imgdiff.cpp b/applypatch/imgdiff.cpp index 7c5bb866..f6087de0 100644 --- a/applypatch/imgdiff.cpp +++ b/applypatch/imgdiff.cpp @@ -189,7 +189,7 @@ unsigned char* ReadZip(const char* filename, } size_t sz = static_cast(st.st_size); - unsigned char* img = reinterpret_cast(malloc(sz)); + unsigned char* img = static_cast(malloc(sz)); FILE* f = fopen(filename, "rb"); if (fread(img, 1, sz, f) != sz) { printf("failed to read \"%s\" %s\n", filename, strerror(errno)); @@ -216,7 +216,7 @@ unsigned char* ReadZip(const char* filename, int cdcount = Read2(img+i+8); int cdoffset = Read4(img+i+16); - ZipFileEntry* temp_entries = reinterpret_cast(malloc( + ZipFileEntry* temp_entries = static_cast(malloc( cdcount * sizeof(ZipFileEntry))); int entrycount = 0; @@ -234,7 +234,7 @@ unsigned char* ReadZip(const char* filename, int mlen = Read2(cd+32); // file comment len int hoffset = Read4(cd+42); // local header offset - char* filename = reinterpret_cast(malloc(nlen+1)); + char* filename = static_cast(malloc(nlen+1)); memcpy(filename, cd+46, nlen); filename[nlen] = '\0'; @@ -283,7 +283,7 @@ unsigned char* ReadZip(const char* filename, #endif *num_chunks = 0; - *chunks = reinterpret_cast(malloc((entrycount*2+2) * sizeof(ImageChunk))); + *chunks = static_cast(malloc((entrycount*2+2) * sizeof(ImageChunk))); ImageChunk* curr = *chunks; if (include_pseudo_chunk) { @@ -308,7 +308,7 @@ unsigned char* ReadZip(const char* filename, curr->filename = temp_entries[nextentry].filename; curr->len = temp_entries[nextentry].uncomp_len; - curr->data = reinterpret_cast(malloc(curr->len)); + curr->data = static_cast(malloc(curr->len)); z_stream strm; strm.zalloc = Z_NULL; @@ -378,7 +378,7 @@ unsigned char* ReadImage(const char* filename, } size_t sz = static_cast(st.st_size); - unsigned char* img = reinterpret_cast(malloc(sz + 4)); + unsigned char* img = static_cast(malloc(sz + 4)); FILE* f = fopen(filename, "rb"); if (fread(img, 1, sz, f) != sz) { printf("failed to read \"%s\" %s\n", filename, strerror(errno)); @@ -408,7 +408,7 @@ unsigned char* ReadImage(const char* filename, size_t chunk_offset = pos; *num_chunks += 3; - *chunks = reinterpret_cast(realloc(*chunks, + *chunks = static_cast(realloc(*chunks, *num_chunks * sizeof(ImageChunk))); ImageChunk* curr = *chunks + (*num_chunks-3); @@ -431,7 +431,7 @@ unsigned char* ReadImage(const char* filename, size_t allocated = 32768; curr->len = 0; - curr->data = reinterpret_cast(malloc(allocated)); + curr->data = static_cast(malloc(allocated)); curr->start = pos; curr->deflate_data = p; @@ -459,7 +459,7 @@ unsigned char* ReadImage(const char* filename, curr->len = allocated - strm.avail_out; if (strm.avail_out == 0) { allocated *= 2; - curr->data = reinterpret_cast(realloc(curr->data, allocated)); + curr->data = static_cast(realloc(curr->data, allocated)); } } while (ret != Z_STREAM_END); @@ -502,7 +502,7 @@ unsigned char* ReadImage(const char* filename, // Reallocate the list for every chunk; we expect the number of // chunks to be small (5 for typical boot and recovery images). ++*num_chunks; - *chunks = reinterpret_cast(realloc(*chunks, *num_chunks * sizeof(ImageChunk))); + *chunks = static_cast(realloc(*chunks, *num_chunks * sizeof(ImageChunk))); ImageChunk* curr = *chunks + (*num_chunks-1); curr->start = pos; @@ -585,7 +585,7 @@ int ReconstructDeflateChunk(ImageChunk* chunk) { return -1; } - unsigned char* out = reinterpret_cast(malloc(BUFFER_SIZE)); + unsigned char* out = static_cast(malloc(BUFFER_SIZE)); // We only check two combinations of encoder parameters: level 6 // (the default) and level 9 (the maximum). @@ -646,7 +646,7 @@ unsigned char* MakePatch(ImageChunk* src, ImageChunk* tgt, size_t* size) { size_t sz = static_cast(st.st_size); // TODO: Memory leak on error return. - unsigned char* data = reinterpret_cast(malloc(sz)); + unsigned char* data = static_cast(malloc(sz)); if (tgt->type == CHUNK_NORMAL && tgt->len <= sz) { unlink(ptemp); @@ -813,7 +813,7 @@ int main(int argc, char** argv) { return 1; } bonus_size = st.st_size; - bonus_data = reinterpret_cast(malloc(bonus_size)); + bonus_data = static_cast(malloc(bonus_size)); FILE* f = fopen(argv[2], "rb"); if (f == NULL) { printf("failed to open bonus file %s: %s\n", argv[2], strerror(errno)); @@ -959,9 +959,9 @@ int main(int argc, char** argv) { DumpChunks(src_chunks, num_src_chunks); printf("Construct patches for %d chunks...\n", num_tgt_chunks); - unsigned char** patch_data = reinterpret_cast(malloc( + unsigned char** patch_data = static_cast(malloc( num_tgt_chunks * sizeof(unsigned char*))); - size_t* patch_size = reinterpret_cast(malloc(num_tgt_chunks * sizeof(size_t))); + size_t* patch_size = static_cast(malloc(num_tgt_chunks * sizeof(size_t))); for (i = 0; i < num_tgt_chunks; ++i) { if (zip_mode) { ImageChunk* src; @@ -975,7 +975,7 @@ int main(int argc, char** argv) { } else { if (i == 1 && bonus_data) { printf(" using %zu bytes of bonus data for chunk %d\n", bonus_size, i); - src_chunks[i].data = reinterpret_cast(realloc(src_chunks[i].data, + src_chunks[i].data = static_cast(realloc(src_chunks[i].data, src_chunks[i].len + bonus_size)); memcpy(src_chunks[i].data+src_chunks[i].len, bonus_data, bonus_size); src_chunks[i].len += bonus_size; diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp index 003b5191..426d982e 100644 --- a/minadbd/minadbd_services.cpp +++ b/minadbd/minadbd_services.cpp @@ -66,7 +66,7 @@ static int create_service_thread(void (*func)(int, void *), void *cookie) { return -1; } - stinfo* sti = reinterpret_cast(malloc(sizeof(stinfo))); + stinfo* sti = static_cast(malloc(sizeof(stinfo))); if(sti == 0) fatal("cannot allocate stinfo"); sti->func = func; sti->cookie = cookie; diff --git a/minui/graphics.cpp b/minui/graphics.cpp index ab56a6fd..0680c32b 100644 --- a/minui/graphics.cpp +++ b/minui/graphics.cpp @@ -298,14 +298,14 @@ static void gr_init_font(void) // fall back to the compiled-in font. - gr_font = reinterpret_cast(calloc(1, sizeof(*gr_font))); - gr_font->texture = reinterpret_cast(malloc(sizeof(*gr_font->texture))); + gr_font = static_cast(calloc(sizeof(*gr_font), 1)); + gr_font->texture = static_cast(malloc(sizeof(*gr_font->texture))); gr_font->texture->width = font.width; gr_font->texture->height = font.height; gr_font->texture->row_bytes = font.width; gr_font->texture->pixel_bytes = 1; - unsigned char* bits = reinterpret_cast(malloc(font.width * font.height)); + unsigned char* bits = static_cast(malloc(font.width * font.height)); gr_font->texture->data = reinterpret_cast(bits); unsigned char data; diff --git a/minui/graphics_adf.cpp b/minui/graphics_adf.cpp index 3c354109..9e262b04 100644 --- a/minui/graphics_adf.cpp +++ b/minui/graphics_adf.cpp @@ -68,9 +68,9 @@ static int adf_surface_init(adf_pdata *pdata, drm_mode_modeinfo *mode, adf_surfa surf->base.row_bytes = surf->pitch; surf->base.pixel_bytes = (pdata->format == DRM_FORMAT_RGB565) ? 2 : 4; - surf->base.data = reinterpret_cast(mmap(NULL, - surf->pitch * surf->base.height, PROT_WRITE, - MAP_SHARED, surf->fd, surf->offset)); + surf->base.data = static_cast(mmap(NULL, + surf->pitch * surf->base.height, PROT_WRITE, + MAP_SHARED, surf->fd, surf->offset)); if (surf->base.data == MAP_FAILED) { close(surf->fd); return -errno; @@ -259,7 +259,7 @@ static void adf_exit(minui_backend *backend) minui_backend *open_adf() { - adf_pdata* pdata = reinterpret_cast(calloc(1, sizeof(*pdata))); + adf_pdata* pdata = static_cast(calloc(1, sizeof(*pdata))); if (!pdata) { perror("allocating adf backend failed"); return NULL; diff --git a/minui/graphics_fbdev.cpp b/minui/graphics_fbdev.cpp index 0788f755..631ef4e1 100644 --- a/minui/graphics_fbdev.cpp +++ b/minui/graphics_fbdev.cpp @@ -133,7 +133,7 @@ static GRSurface* fbdev_init(minui_backend* backend) { gr_framebuffer[0].height = vi.yres; gr_framebuffer[0].row_bytes = fi.line_length; gr_framebuffer[0].pixel_bytes = vi.bits_per_pixel / 8; - gr_framebuffer[0].data = reinterpret_cast(bits); + gr_framebuffer[0].data = static_cast(bits); memset(gr_framebuffer[0].data, 0, gr_framebuffer[0].height * gr_framebuffer[0].row_bytes); /* check if we can use double buffering */ diff --git a/minui/resources.cpp b/minui/resources.cpp index 455ef278..34e7b8be 100644 --- a/minui/resources.cpp +++ b/minui/resources.cpp @@ -37,7 +37,7 @@ static GRSurface* malloc_surface(size_t data_size) { size_t size = sizeof(GRSurface) + data_size + SURFACE_DATA_ALIGNMENT; - unsigned char* temp = reinterpret_cast(malloc(size)); + unsigned char* temp = static_cast(malloc(size)); if (temp == NULL) return NULL; GRSurface* surface = reinterpret_cast(temp); surface->data = temp + sizeof(GRSurface) + @@ -221,7 +221,7 @@ int res_create_display_surface(const char* name, GRSurface** pSurface) { png_set_bgr(png_ptr); #endif - p_row = reinterpret_cast(malloc(width * 4)); + p_row = static_cast(malloc(width * 4)); for (y = 0; y < height; ++y) { png_read_row(png_ptr, p_row, NULL); transform_rgb_to_draw(p_row, surface->data + y * surface->row_bytes, channels, width); @@ -281,7 +281,7 @@ int res_create_multi_display_surface(const char* name, int* frames, int* fps, goto exit; } - surface = reinterpret_cast(calloc(*frames, sizeof(GRSurface*))); + surface = static_cast(calloc(*frames, sizeof(GRSurface*))); if (surface == NULL) { result = -8; goto exit; @@ -298,7 +298,7 @@ int res_create_multi_display_surface(const char* name, int* frames, int* fps, png_set_bgr(png_ptr); #endif - p_row = reinterpret_cast(malloc(width * 4)); + p_row = static_cast(malloc(width * 4)); for (y = 0; y < height; ++y) { png_read_row(png_ptr, p_row, NULL); int frame = y % *frames;