From a941701f985a7196ad6e347c8e5f699649561931 Mon Sep 17 00:00:00 2001 From: Abdel Younes Date: Wed, 28 Nov 2018 03:08:14 +0100 Subject: [PATCH] fix: c++ warnings (#666) --- src/net.cpp | 70 ++++++++++++++++++++++++++------------ tools/mxnet/mxnet2ncnn.cpp | 2 +- 2 files changed, 50 insertions(+), 22 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 4e9e211f3..d932ab2a5 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -103,7 +103,12 @@ int Net::register_custom_layer(int index, layer_creator_func creator) int Net::load_param(FILE* fp) { int magic = 0; - fscanf(fp, "%d", &magic); + int nbr = fscanf(fp, "%d", &magic); + if (nbr != 1) + { + fprintf(stderr, "issue with param file\n"); + return -1; + } if (magic != 7767517) { fprintf(stderr, "param is too old, please regenerate\n"); @@ -113,10 +118,15 @@ int Net::load_param(FILE* fp) // parse int layer_count = 0; int blob_count = 0; - fscanf(fp, "%d %d", &layer_count, &blob_count); + nbr = fscanf(fp, "%d %d", &layer_count, &blob_count); + if (nbr != 2 || layer_count <= 0 || blob_count <= 0) + { + fprintf(stderr, "issue with param file\n"); + return -1; + } - layers.resize(layer_count); - blobs.resize(blob_count); + layers.resize((size_t)layer_count); + blobs.resize((size_t)blob_count); ParamDict pd; pd.use_winograd_convolution = use_winograd_convolution; @@ -397,21 +407,34 @@ int Net::load_param(const char* protopath) } #endif // NCNN_STRING +template bool readValue(T & val, FILE * fp) +{ + size_t res = fread(&val, sizeof(T), 1, fp); + if (res != sizeof(T)) { + fprintf(stderr, "issue with param file reading\n"); + return false; + } + return true; +} + int Net::load_param_bin(FILE* fp) { int magic = 0; - fread(&magic, sizeof(int), 1, fp); + if (!readValue(magic, fp)) + return -1; if (magic != 7767517) { fprintf(stderr, "param is too old, please regenerate\n"); return -1; } - int layer_count = 0; - fread(&layer_count, sizeof(int), 1, fp); + size_t layer_count = 0; + if (!readValue(layer_count, fp)) + return -1; - int blob_count = 0; - fread(&blob_count, sizeof(int), 1, fp); + size_t blob_count = 0; + if (!readValue(blob_count, fp)) + return -1; layers.resize(layer_count); blobs.resize(blob_count); @@ -421,16 +444,19 @@ int Net::load_param_bin(FILE* fp) pd.use_sgemm_convolution = use_sgemm_convolution; pd.use_int8_inference = use_int8_inference; - for (int i=0; ibottoms.resize(bottom_count); - for (int j=0; jtops.resize(top_count); - for (int j=0; j& nodes) char line[1024]; //{ - fgets(line, 1024, fp); + (void)fgets(line, 1024, fp); MXNetNode n;