diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-04-12 16:05:05 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-04-12 16:05:05 +0200 |
commit | 647a1da10867b87f90e7f917d7c33ba69ed2a705 (patch) | |
tree | 6c4a7012de4fa57570421f31c8e57e26150f5d84 /sys/src/9/port/devsegment.c | |
parent | 81e6b7e9c958bd5da3c93e204fff59e6868bd0fc (diff) |
segment: fix print buffer overflow, map fixed segments uncached, add to zynq kernel
Diffstat (limited to 'sys/src/9/port/devsegment.c')
-rw-r--r-- | sys/src/9/port/devsegment.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/src/9/port/devsegment.c b/sys/src/9/port/devsegment.c index 7e5a18e72..41967e829 100644 --- a/sys/src/9/port/devsegment.c +++ b/sys/src/9/port/devsegment.c @@ -319,7 +319,7 @@ static long segmentread(Chan *c, void *a, long n, vlong voff) { Globalseg *g; - char buf[32]; + char buf[128]; if(c->qid.type == QTDIR) return devdirread(c, a, n, (Dirtab *)0, 0L, segmentgen); @@ -329,11 +329,11 @@ segmentread(Chan *c, void *a, long n, vlong voff) g = c->aux; if(g->s == nil) error("segment not yet allocated"); - if(g->s->type&SG_TYPE == SG_FIXED) - sprint(buf, "va %#p %#p fixed %#p\n", g->s->base, g->s->top-g->s->base, + if((g->s->type&SG_TYPE) == SG_FIXED) + snprint(buf, sizeof(buf), "va %#p %#p fixed %#p\n", g->s->base, g->s->top-g->s->base, g->s->map[0]->pages[0]->pa); else - sprint(buf, "va %#p %#p\n", g->s->base, g->s->top-g->s->base); + snprint(buf, sizeof(buf), "va %#p %#p\n", g->s->base, g->s->top-g->s->base); return readstr(voff, a, n, buf); case Qdata: g = c->aux; |