use signed offsets
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Sat, 13 Nov 2021 09:08:57 +0000 (20:08 +1100)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Sat, 13 Nov 2021 09:08:57 +0000 (20:08 +1100)
fusefile.c

index 5aa29170a23e3ebc3f7cf195d486092f4fa3ab87..00f7f7fd33e3565e6cff5966cbf7690ed58273c8 100644 (file)
 
 struct Source {
     char *filename;
-    size_t from;
-    size_t to;
-    size_t start; // starting position in concatenated file
+    ssize_t from;
+    ssize_t to;
+    ssize_t start; // starting position in concatenated file
     int fd;
 };
 
 static struct {
     struct Source *array;
     int count;
-    size_t size;
+    ssize_t size;
 } sources;
 
 #if DEBUG
@@ -76,6 +76,7 @@ static size_t scan_source(char *in,struct Source *p) {
            m = i;
        }
     }
+    fprintf( stderr, "m=%d s=%d\n", m, s );
     // Copy the filename, and set from and to
     p->filename = strndup( in, ( s < 0 )? e : s );
     struct stat buf;
@@ -87,6 +88,7 @@ static size_t scan_source(char *in,struct Source *p) {
     if ( p->from < 0 ) {
        p->from = 0;
     }
+    fprintf( stderr, "p->from=%ld\n", p->from );
     p->to = ( m < 0 )? buf.st_size : atol( in+m+1 );
     if ( p->from > p->to || p->to > buf.st_size ) {
        return 1;