]> granicus.if.org Git - graphviz/commitdiff
squash a number of -Wconversion warnings
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 24 Apr 2021 03:32:49 +0000 (20:32 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 14 May 2021 00:03:36 +0000 (17:03 -0700)
The fread function returns a size_t, so Graphviz should be using a size_t
variable to store its result.

lib/sparse/SparseMatrix.c

index bff75965cc27abf67f3b0aaf3be3dbde8a820b0b..6d7d9a805a0741cca7f9d8081943c0b977625d29 100644 (file)
@@ -15,6 +15,7 @@
 #include <common/logic.h>
 #include <common/memory.h>
 #include <common/arith.h>
+#include <limits.h>
 #include <sparse/SparseMatrix.h>
 #include <sparse/BinaryHeap.h>
 #if PQ
@@ -659,10 +660,10 @@ void SparseMatrix_export_binary(char *name, SparseMatrix A, int *flag){
 
 SparseMatrix SparseMatrix_import_binary_fp(FILE *f){
   SparseMatrix A = NULL;
-  int m, n, nz, nzmax, type, format, property, iread;
+  int m, n, nz, nzmax, type, format, property;
   size_t sz;
 
-  iread = fread(&m, sizeof(int), 1, f);
+  size_t iread = fread(&m, sizeof(int), 1, f);
   if (iread != 1) return NULL;
   iread = fread(&n, sizeof(int), 1, f);
   if (iread != 1) return NULL;
@@ -685,17 +686,17 @@ SparseMatrix SparseMatrix_import_binary_fp(FILE *f){
   
   if (format == FORMAT_COORD){
     iread = fread(A->ia, sizeof(int), A->nz, f);
-    if (iread != A->nz) return NULL;
+    if (iread > (size_t)INT_MAX || (int)iread != A->nz) return NULL;
   } else {
     iread = fread(A->ia, sizeof(int), A->m + 1, f);
-    if (iread != A->m + 1) return NULL;
+    if (iread > (size_t)INT_MAX || (int)iread != A->m + 1) return NULL;
   }
   iread = fread(A->ja, sizeof(int), A->nz, f);
-  if (iread != A->nz) return NULL;
+  if (iread > (size_t)INT_MAX || (int)iread != A->nz) return NULL;
 
   if (A->size > 0) {
     iread = fread(A->a, A->size, A->nz, f);
-    if (iread != A->nz) return NULL;
+    if (iread > (size_t)INT_MAX || (int)iread != A->nz) return NULL;
   }
   fclose(f);
   return A;