From 88fb928a041ef64948920d393c641bd378b0fcc8 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 6 Dec 1997 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1997-12-06 --- port/devdraw.c | 2 +- port/devproc.c | 4 ++++ port/error.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/port/devdraw.c b/port/devdraw.c index d0e1d729b24ff6f3dc325c35d0426cb15f305bd1..ee03b3328f37be20ac20bccd4c81b4c66c66ea96 100644 --- a/port/devdraw.c +++ b/port/devdraw.c @@ -1531,9 +1531,9 @@ drawmesg(Client *client, void *av, int n) drawrectangle(&r, a+5); if(!rectinrect(r, i->r)) error(Ereadoutside); - free(client->readdata); c = bytesperline(r, i->ldepth); c *= Dy(r); + free(client->readdata); client->readdata = mallocz(c, 0); if(client->readdata == nil) error("readimage malloc failed"); diff --git a/port/devproc.c b/port/devproc.c index b92b3563e602c52a64db2ccf017751ec730b2165..6da95711a946c6c8afe474c68e9a9206b879e859 100644 --- a/port/devproc.c +++ b/port/devproc.c @@ -361,6 +361,8 @@ procread(Chan *c, void *va, long n, ulong offset) rptr = (uchar*)&p->fpsave; rsize = sizeof(FPsave); regread: + if(rptr == 0) + error(Enoreg); if(offset >= rsize) return 0; if(offset+n > rsize) @@ -566,6 +568,8 @@ procwrite(Chan *c, void *va, long n, ulong offset) return 0; if(offset+n > sizeof(Ureg)) n = sizeof(Ureg) - offset; + if(p->dbgreg == 0) + error(Enoreg); setregisters(p->dbgreg, (char*)(p->dbgreg)+offset, va, n); break; diff --git a/port/error.h b/port/error.h index b5191837b7a7b86108d47e8c0419e285b6113429..6f123a2ea6f36214654a0c496b5a01753272e3b3 100644 --- a/port/error.h +++ b/port/error.h @@ -51,6 +51,6 @@ extern char Esoverlap[]; /* segments overlap */ extern char Emouseset[]; /* mouse type already set */ extern char Erecover[]; /* failed to recover fd */ extern char Eshort[]; /* i/o count too small */ -extern char Enobitstore[]; /* out of screen memory */ extern char Egreg[]; /* ken scheduled it */ extern char Ebadspec[]; /* bad attach specifier */ +extern char Enoreg[]; /* process has no saved registers */