From 33636932054f74c7a922a9713a9229d6d5fc7f38 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 22 Nov 2018 10:31:30 +0100 Subject: [PATCH] snap: consequently use ulong for page index and count --- sys/src/cmd/snap/read.c | 11 ++++++----- sys/src/cmd/snap/write.c | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/src/cmd/snap/read.c b/sys/src/cmd/snap/read.c index 961781807..f1e552cbe 100644 --- a/sys/src/cmd/snap/read.c +++ b/sys/src/cmd/snap/read.c @@ -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; ilen - 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); diff --git a/sys/src/cmd/snap/write.c b/sys/src/cmd/snap/write.c index 2cbb1e5c0..a28d0cbd3 100644 --- a/sys/src/cmd/snap/write.c +++ b/sys/src/cmd/snap/write.c @@ -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; } } -- 2.44.0