]> git.lizzy.rs Git - plan9front.git/commitdiff
snap: consequently use ulong for page index and count
authorcinap_lenrek <cinap_lenrek@felloff.net>
Thu, 22 Nov 2018 09:31:30 +0000 (10:31 +0100)
committercinap_lenrek <cinap_lenrek@felloff.net>
Thu, 22 Nov 2018 09:31:30 +0000 (10:31 +0100)
sys/src/cmd/snap/read.c
sys/src/cmd/snap/write.c

index 961781807765ae00c6e883f485be534f9354c5de..f1e552cbe3160f62838b4b9251f7974f1a058129 100644 (file)
@@ -134,9 +134,9 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
 {
        Seg *s;
        Page **pp;
-       int i, npg;
        int t;
        int n, len;
+       ulong i, npg;
        ulong pid;
        uvlong off;
        char buf[Pagesize];
@@ -160,13 +160,13 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
        len = Pagesize;
        for(i=0; i<npg; i++) {
                if(i == npg-1)
-                       len = s->len - i*Pagesize;
+                       len = s->len - (uvlong)i*Pagesize;
 
                switch(t = Bgetc(b)) {
                case 'z':
                        pp[i] = datapage(zero, len);
                        if(debug)
-                               fprint(2, "0x%.8llux all zeros\n", s->offset+i*Pagesize);
+                               fprint(2, "0x%.8llux all zeros\n", s->offset+(uvlong)i*Pagesize);
                        break;
                case 'm':
                case 't':
@@ -177,14 +177,15 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
                        if(pp[i] == nil)
                                panic("bad page reference in snapshot");
                        if(debug)
-                               fprint(2, "0x%.8llux same as %s pid %lud 0x%.8llux\n", s->offset+i*Pagesize, t=='m'?"mem":"text", pid, off);
+                               fprint(2, "0x%.8llux same as %s pid %lud 0x%.8llux\n",
+                                       s->offset+(uvlong)i*Pagesize, t=='m'?"mem":"text", pid, off);
                        break;
                case 'r':
                        if((n=Bread(b, buf, len)) != len)
                                sysfatal("short read of segment %d/%d at %llx: %r", n, len, Boffset(b));
                        pp[i] = datapage(buf, len);
                        if(debug)
-                               fprint(2, "0x%.8llux is raw data\n", s->offset+i*Pagesize);
+                               fprint(2, "0x%.8llux is raw data\n", s->offset+(uvlong)i*Pagesize);
                        break;
                default:
                        fprint(2, "bad type char %#.2ux\n", t);
index 2cbb1e5c04e20d8e79d77e206fc05d0a1cb0f574..a28d0cbd3bb897de924ab3f1dda163effaa0105f 100644 (file)
@@ -18,7 +18,7 @@ char *pfile[Npfile] = {
 static void
 writeseg(Biobuf *b, Proc *proc, Seg *s)
 {
-       int i, npg;
+       ulong i, npg;
        Page **pp, *p;
        int type;
 
@@ -50,7 +50,7 @@ writeseg(Biobuf *b, Proc *proc, Seg *s)
                                abort();
                        p->written = 1;
                        p->type = type;
-                       p->offset = s->offset + i*Pagesize;
+                       p->offset = s->offset + (uvlong)i*Pagesize;
                        p->pid = proc->pid;
                }
        }