From 2f201add36e413cecb7de466b895f65a693b130e Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 17 Jan 2006 17:09:05 +0000 Subject: [PATCH] fix bunch of gcc4 warnings --- Common/Views.cpp | 119 +++++++++++++++++++++-------------- DataStr/List.cpp | 134 +++++++++++++++++++++++++++++----------- Mesh/3D_Extrude_Old.cpp | 19 +++--- Mesh/Read_Mesh.cpp | 8 ++- Numeric/Numeric.cpp | 7 ++- 5 files changed, 189 insertions(+), 98 deletions(-) diff --git a/Common/Views.cpp b/Common/Views.cpp index 909489488b..031084f5be 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.181 2006-01-14 16:24:53 geuzaine Exp $ +// $Id: Views.cpp,v 1.182 2006-01-17 17:09:05 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -798,7 +798,8 @@ void ReadView(FILE *file, char *filename) while(1) { do { - fgets(str, 256, file); + if(!fgets(str, 256, file)) + break; if(feof(file)) break; } while(str[0] != '$'); @@ -809,7 +810,10 @@ void ReadView(FILE *file, char *filename) /* F o r m a t */ if(!strncmp(&str[1], "PostFormat", 10)) { - fscanf(file, "%lf %d %d\n", &version, &format, &size); + if(!fscanf(file, "%lf %d %d\n", &version, &format, &size)){ + Msg(GERROR, "Read error"); + return; + } if(version < 1.0) { Msg(GERROR, "This post-processing file is too old (version %g < 1.0)", version); @@ -841,58 +845,70 @@ void ReadView(FILE *file, char *filename) if(version <= 1.0) { Msg(DEBUG, "Detected post-processing view format <= 1.0"); - fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - name, &v->NbTimeStep, - &v->NbSP, &v->NbVP, &v->NbTP, - &v->NbSL, &v->NbVL, &v->NbTL, - &v->NbST, &v->NbVT, &v->NbTT, &v->NbSS, &v->NbVS, &v->NbTS); + if(!fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + name, &v->NbTimeStep, + &v->NbSP, &v->NbVP, &v->NbTP, + &v->NbSL, &v->NbVL, &v->NbTL, + &v->NbST, &v->NbVT, &v->NbTT, &v->NbSS, &v->NbVS, &v->NbTS)){ + Msg(GERROR, "Read error"); + return; + } v->NbT2 = t2l = v->NbT3 = t3l = 0; } else if(version == 1.1) { Msg(DEBUG, "Detected post-processing view format 1.1"); - fscanf(file, - "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - name, &v->NbTimeStep, &v->NbSP, &v->NbVP, &v->NbTP, &v->NbSL, - &v->NbVL, &v->NbTL, &v->NbST, &v->NbVT, &v->NbTT, &v->NbSS, - &v->NbVS, &v->NbTS, &v->NbT2, &t2l, &v->NbT3, &t3l); + if(!fscanf(file, + "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + name, &v->NbTimeStep, &v->NbSP, &v->NbVP, &v->NbTP, &v->NbSL, + &v->NbVL, &v->NbTL, &v->NbST, &v->NbVT, &v->NbTT, &v->NbSS, + &v->NbVS, &v->NbTS, &v->NbT2, &t2l, &v->NbT3, &t3l)){ + Msg(GERROR, "Read error"); + return; + } } else if(version == 1.2 || version == 1.3) { Msg(DEBUG, "Detected post-processing view format %g", version); - fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " - "%d %d %d %d %d %d %d %d %d %d %d %d %d\n", - name, &v->NbTimeStep, - &v->NbSP, &v->NbVP, &v->NbTP, - &v->NbSL, &v->NbVL, &v->NbTL, - &v->NbST, &v->NbVT, &v->NbTT, - &v->NbSQ, &v->NbVQ, &v->NbTQ, - &v->NbSS, &v->NbVS, &v->NbTS, - &v->NbSH, &v->NbVH, &v->NbTH, - &v->NbSI, &v->NbVI, &v->NbTI, - &v->NbSY, &v->NbVY, &v->NbTY, - &v->NbT2, &t2l, &v->NbT3, &t3l); + if(!fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " + "%d %d %d %d %d %d %d %d %d %d %d %d %d\n", + name, &v->NbTimeStep, + &v->NbSP, &v->NbVP, &v->NbTP, + &v->NbSL, &v->NbVL, &v->NbTL, + &v->NbST, &v->NbVT, &v->NbTT, + &v->NbSQ, &v->NbVQ, &v->NbTQ, + &v->NbSS, &v->NbVS, &v->NbTS, + &v->NbSH, &v->NbVH, &v->NbTH, + &v->NbSI, &v->NbVI, &v->NbTI, + &v->NbSY, &v->NbVY, &v->NbTY, + &v->NbT2, &t2l, &v->NbT3, &t3l)){ + Msg(GERROR, "Read error"); + return; + } } else if(version == 1.4) { Msg(DEBUG, "Detected post-processing view format 1.4"); - fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " - "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " - "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - name, &v->NbTimeStep, - &v->NbSP, &v->NbVP, &v->NbTP, - &v->NbSL, &v->NbVL, &v->NbTL, - &v->NbST, &v->NbVT, &v->NbTT, - &v->NbSQ, &v->NbVQ, &v->NbTQ, - &v->NbSS, &v->NbVS, &v->NbTS, - &v->NbSH, &v->NbVH, &v->NbTH, - &v->NbSI, &v->NbVI, &v->NbTI, - &v->NbSY, &v->NbVY, &v->NbTY, - &v->NbSL2, &v->NbVL2, &v->NbTL2, - &v->NbST2, &v->NbVT2, &v->NbTT2, - &v->NbSQ2, &v->NbVQ2, &v->NbTQ2, - &v->NbSS2, &v->NbVS2, &v->NbTS2, - &v->NbSH2, &v->NbVH2, &v->NbTH2, - &v->NbSI2, &v->NbVI2, &v->NbTI2, - &v->NbSY2, &v->NbVY2, &v->NbTY2, - &v->NbT2, &t2l, &v->NbT3, &t3l); + if(!fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " + "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d " + "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + name, &v->NbTimeStep, + &v->NbSP, &v->NbVP, &v->NbTP, + &v->NbSL, &v->NbVL, &v->NbTL, + &v->NbST, &v->NbVT, &v->NbTT, + &v->NbSQ, &v->NbVQ, &v->NbTQ, + &v->NbSS, &v->NbVS, &v->NbTS, + &v->NbSH, &v->NbVH, &v->NbTH, + &v->NbSI, &v->NbVI, &v->NbTI, + &v->NbSY, &v->NbVY, &v->NbTY, + &v->NbSL2, &v->NbVL2, &v->NbTL2, + &v->NbST2, &v->NbVT2, &v->NbTT2, + &v->NbSQ2, &v->NbVQ2, &v->NbTQ2, + &v->NbSS2, &v->NbVS2, &v->NbTS2, + &v->NbSH2, &v->NbVH2, &v->NbTH2, + &v->NbSI2, &v->NbVI2, &v->NbTI2, + &v->NbSY2, &v->NbVY2, &v->NbTY2, + &v->NbT2, &t2l, &v->NbT3, &t3l)){ + Msg(GERROR, "Read error"); + return; + } } else { Msg(GERROR, "Unknown post-processing file format (version %g)", @@ -906,7 +922,10 @@ void ReadView(FILE *file, char *filename) swap = 0; if(format == LIST_FORMAT_BINARY) { - fread(&testone, sizeof(int), 1, file); + if(!fread(&testone, sizeof(int), 1, file)){ + Msg(GERROR, "Read error"); + return; + } if(testone != 1) { Msg(INFO, "Swapping bytes from binary file"); swap = 1; @@ -1058,7 +1077,8 @@ void ReadView(FILE *file, char *filename) } do { - fgets(str, 256, file); + if(!fgets(str, 256, file)) + Msg(GERROR, "Prematured end of file"); if(feof(file)) Msg(GERROR, "Prematured end of file"); } while(str[0] != '$'); @@ -1319,7 +1339,10 @@ void WriteView(Post_View *v, char *filename, int format, int append) v->NbT2, List_Nbr(v->T2C), v->NbT3, List_Nbr(v->T3C)); if(binary) { f = LIST_FORMAT_BINARY; - fwrite(&One, sizeof(int), 1, file); + if(!fwrite(&One, sizeof(int), 1, file)){ + Msg(GERROR, "Write error"); + return; + } } else f = LIST_FORMAT_ASCII; diff --git a/DataStr/List.cpp b/DataStr/List.cpp index ad5c4e4e8a..54481c9623 100644 --- a/DataStr/List.cpp +++ b/DataStr/List.cpp @@ -1,4 +1,4 @@ -// $Id: List.cpp,v 1.37 2006-01-06 00:34:21 geuzaine Exp $ +// $Id: List.cpp,v 1.38 2006-01-17 17:09:05 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -427,7 +427,7 @@ void swap_bytes(char *array, int size, int n) List_T *List_CreateFromFile(int n, int incr, int size, FILE * file, int format, int swap) { - int i; + int i, error = 0; List_T *liste; if(!n){ @@ -439,34 +439,67 @@ List_T *List_CreateFromFile(int n, int incr, int size, FILE * file, int format, liste->n = n; switch (format) { case LIST_FORMAT_ASCII: - if(size == sizeof(double)) - for(i = 0; i < n; i++) - fscanf(file, "%lf", (double *)&liste->array[i * size]); - else if(size == sizeof(float)) - for(i = 0; i < n; i++) - fscanf(file, "%f", (float *)&liste->array[i * size]); - else if(size == sizeof(int)) - for(i = 0; i < n; i++) - fscanf(file, "%d", (int *)&liste->array[i * size]); - else if(size == sizeof(char)) { - for(i = 0; i < n; i++) - liste->array[i * size] = fgetc(file); + if(size == sizeof(double)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%lf", (double *)&liste->array[i * size])){ + error = 1; + break; + } + } } - else { + else if(size == sizeof(float)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%f", (float *)&liste->array[i * size])){ + error = 1; + break; + } + } + } + else if(size == sizeof(int)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%d", (int *)&liste->array[i * size])){ + error = 1; + break; + } + } + } + else if(size == sizeof(char)){ + for(i = 0; i < n; i++){ + char c = (char)fgetc(file); + if(c == EOF){ + error = 1; + break; + } + else{ + liste->array[i * size] = c; + } + } + } + else{ Msg(GERROR, "Bad type of data to create list from (size = %d)", size); - return NULL; + error = 1; } - return liste; + break; case LIST_FORMAT_BINARY: - fread(liste->array, size, n, file); + if(!fread(liste->array, size, n, file)){ + error = 1; + break; + } if(swap) swap_bytes(liste->array, size, n); - return liste; + break; default: Msg(GERROR, "Unknown list format"); - return NULL; + error = 1; + break; + } + + if(error){ + Msg(GERROR, "Read error"); + liste->n = 0; } + return liste; } void List_WriteToFile(List_T * liste, FILE * file, int format) @@ -499,6 +532,7 @@ void List_WriteToFile(List_T * liste, FILE * file, int format) break; default: Msg(GERROR, "Unknown list format"); + break; } } @@ -507,7 +541,7 @@ void List_WriteToFile(List_T * liste, FILE * file, int format) List_T *List_CreateFromFileOld(int n, int incr, int size, FILE * file, int format, int swap) { - int i; + int i, error = 0; List_T *liste; if(!n){ @@ -519,35 +553,63 @@ List_T *List_CreateFromFileOld(int n, int incr, int size, FILE * file, int forma liste->n = n; switch (format) { case LIST_FORMAT_ASCII: - if(size == sizeof(double)) - for(i = 0; i < n; i++) - fscanf(file, "%lf", (double *)&liste->array[i * size]); - else if(size == sizeof(float)) - for(i = 0; i < n; i++) - fscanf(file, "%f", (float *)&liste->array[i * size]); - else if(size == sizeof(int)) - for(i = 0; i < n; i++) - fscanf(file, "%d", (int *)&liste->array[i * size]); - else if(size == sizeof(char)) { - for(i = 0; i < n; i++) { - fscanf(file, "%c", (char *)&liste->array[i * size]); + if(size == sizeof(double)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%lf", (double *)&liste->array[i * size])){ + error = 1; + break; + } + } + } + else if(size == sizeof(float)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%f", (float *)&liste->array[i * size])){ + error = 1; + break; + } + } + } + else if(size == sizeof(int)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%d", (int *)&liste->array[i * size])){ + error = 1; + break; + } + } + } + else if(size == sizeof(char)){ + for(i = 0; i < n; i++){ + if(!fscanf(file, "%c", (char *)&liste->array[i * size])){ + error = 1; + break; + } if(liste->array[i * size] == '^') liste->array[i * size] = '\0'; } } else { Msg(GERROR, "Bad type of data to create list from (size = %d)", size); - return NULL; + error = 1; } return liste; case LIST_FORMAT_BINARY: - fread(liste->array, size, n, file); + if(!fread(liste->array, size, n, file)){ + error = 1; + break; + } if(swap) swap_bytes(liste->array, size, n); return liste; default: Msg(GERROR, "Unknown list format"); - return NULL; + error = 1; + break; + } + + if(error){ + Msg(GERROR, "Read error"); + liste->n = 0; } + return liste; } diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp index b62d7f20c8..59d374b6bb 100644 --- a/Mesh/3D_Extrude_Old.cpp +++ b/Mesh/3D_Extrude_Old.cpp @@ -1,4 +1,4 @@ -// $Id: 3D_Extrude_Old.cpp,v 1.39 2006-01-06 00:34:25 geuzaine Exp $ +// $Id: 3D_Extrude_Old.cpp,v 1.40 2006-01-17 17:09:05 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -86,11 +86,12 @@ static int compnxn(const void *a, const void *b) static void InitExtrudeParams(void) { + char *ret; char str[256]; printf("Number of layers (default=1): "); - fgets(str, sizeof(str), stdin); - if(!strlen(str) || !strcmp(str, "\n")) + ret = fgets(str, sizeof(str), stdin); + if(!ret || !strlen(str) || !strcmp(str, "\n")) NbLayer = 1; else NbLayer = atoi(str); @@ -106,8 +107,8 @@ static void InitExtrudeParams(void) fprintf(file, "%d\n", NbLayer); for(int i = 0; i < NbLayer; i++) { printf("Number of elements in layer %d (default=1): ", i + 1); - fgets(str, sizeof(str), stdin); - if(!strlen(str) || !strcmp(str, "\n")) + ret = fgets(str, sizeof(str), stdin); + if(!ret || !strlen(str) || !strcmp(str, "\n")) NbElmLayer[i] = 1; else NbElmLayer[i] = atoi(str); @@ -115,8 +116,8 @@ static void InitExtrudeParams(void) fprintf(file, "%d\n", NbElmLayer[i]); printf("Depth of layer %d (default=1.0): ", i + 1); - fgets(str, sizeof(str), stdin); - if(!strlen(str) || !strcmp(str, "\n")) + ret = fgets(str, sizeof(str), stdin); + if(!ret || !strlen(str) || !strcmp(str, "\n")) hLayer[i] = 1.0; else hLayer[i] = atof(str); @@ -124,8 +125,8 @@ static void InitExtrudeParams(void) fprintf(file, "%g\n", hLayer[i]); printf("Progression ratio for layer %d (default=1.0): ", i + 1); - fgets(str, sizeof(str), stdin); - if(!strlen(str) || !strcmp(str, "\n")) + ret = fgets(str, sizeof(str), stdin); + if(!ret || !strlen(str) || !strcmp(str, "\n")) parLayer[i] = 1.0; else parLayer[i] = atof(str); diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index ebcde4574d..ea7418abd6 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Read_Mesh.cpp,v 1.97 2006-01-16 17:55:44 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.98 2006-01-17 17:09:05 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -185,7 +185,8 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp) while(1) { do { - fgets(String, sizeof(String), fp); + if(!fgets(String, sizeof(String), fp)) + break; if(feof(fp)) break; } while(String[0] != '$'); @@ -559,7 +560,8 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp) } do { - fgets(String, sizeof(String), fp); + if(!fgets(String, sizeof(String), fp)) + Msg(GERROR, "Prematured end of mesh file"); if(feof(fp)) Msg(GERROR, "Prematured end of mesh file"); } while(String[0] != '$'); diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp index c052ea5dfa..c119ce751f 100644 --- a/Numeric/Numeric.cpp +++ b/Numeric/Numeric.cpp @@ -1,4 +1,4 @@ -// $Id: Numeric.cpp,v 1.24 2006-01-06 00:34:27 geuzaine Exp $ +// $Id: Numeric.cpp,v 1.25 2006-01-17 17:09:05 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -45,7 +45,10 @@ int check_gsl() { // check version int major, minor; - sscanf(gsl_version, "%d.%d", &major, &minor); + if(!sscanf(gsl_version, "%d.%d", &major, &minor)){ + Msg(FATAL, "Cannot retreive GSL version"); + return 0; + } if(major < 1 || (major == 1 && minor < 2)) { Msg(FATAL1, "Your GSL version (%d.%d.X) has a bug in the singular value", major, minor); -- GitLab