]> source.dussan.org Git - tigervnc.git/commitdiff
rdr: Fix incorrect error checking after fread()
authorSteve Kondik <shade@chemlab.org>
Sat, 8 Jul 2017 08:57:16 +0000 (01:57 -0700)
committerSteve Kondik <shade@chemlab.org>
Sat, 8 Jul 2017 09:28:12 +0000 (02:28 -0700)
fread() returns size_t, which is unsigned. Don't check
for negative values to avoid warnings from Clang.

/home/shade/dev/tigervnc/common/rdr/FileInStream.cxx:74:13: error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare]
      if (n < 0 || ferror(file))
          ~ ^ ~

common/rdr/FileInStream.cxx

index 8d5c22e04ee8e37d1b6438632211ad8aadd39612..3acdfd45b8c50a15d03901b451e082f217a75fa5 100644 (file)
@@ -70,12 +70,12 @@ int FileInStream::overrun(int itemSize, int nItems, bool wait)
 
   while (end < b + itemSize) {
     size_t n = fread((U8 *)end, b + sizeof(b) - end, 1, file);
-    if (n < 1) {
-      if (n < 0 || ferror(file))
+    if (n == 0) {
+      if (ferror(file))
         throw SystemException("fread", errno);
       if (feof(file))
         throw EndOfStream();
-      if (n == 0) { return 0; }
+      return 0;
     }
     end += b + sizeof(b) - end;
   }