fuse_buf_size fix for SIZE_MAX
authorleipeng <peng@topling.cn>
Fri, 11 Oct 2024 07:54:14 +0000 (15:54 +0800)
committerBernd Schubert <bernd.schubert@fastmail.fm>
Mon, 14 Oct 2024 17:50:52 +0000 (19:50 +0200)
lib/buffer.c

index 4f2f491dfa1da780b2183b87175d3e6379065c50..6375433ee3d70d62c1ad073f7f0fb9a9c1128957 100644 (file)
@@ -25,10 +25,10 @@ size_t fuse_buf_size(const struct fuse_bufvec *bufv)
        size_t size = 0;
 
        for (i = 0; i < bufv->count; i++) {
-               if (bufv->buf[i].size == SIZE_MAX)
-                       size = SIZE_MAX;
-               else
-                       size += bufv->buf[i].size;
+               if (bufv->buf[i].size >= SIZE_MAX - size)
+                       return SIZE_MAX;
+
+               size += bufv->buf[i].size;
        }
 
        return size;