summaryrefslogtreecommitdiffstats
path: root/usr.sbin/dconschat
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2004-09-26 12:46:47 +0000
committersimokawa <simokawa@FreeBSD.org>2004-09-26 12:46:47 +0000
commit27603055755a1659f46f45eac4a879f7d0ac9736 (patch)
tree7b3df3b2bd8a86c2ef05b6891bf47b9f5105d519 /usr.sbin/dconschat
parentb897378c211b1cf410c6c25779535b6da61a074d (diff)
downloadFreeBSD-src-27603055755a1659f46f45eac4a879f7d0ac9736.zip
FreeBSD-src-27603055755a1659f46f45eac4a879f7d0ac9736.tar.gz
Invalidate dcons buffer address if the magic is wrong.
Diffstat (limited to 'usr.sbin/dconschat')
-rw-r--r--usr.sbin/dconschat/dconschat.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/dconschat/dconschat.c b/usr.sbin/dconschat/dconschat.c
index d343811..6462e3d 100644
--- a/usr.sbin/dconschat/dconschat.c
+++ b/usr.sbin/dconschat/dconschat.c
@@ -327,6 +327,7 @@ dconschat_get_ptr (struct dcons_state *dc) {
int dlen, i;
u_int32_t ptr[DCONS_NPORT*2+1];
static int retry = RETRY;
+ char ebuf[64];
again:
dlen = dread(dc, &ptr, sizeof(ptr),
@@ -340,7 +341,10 @@ again:
return(-1);
}
if (ptr[0] != htonl(DCONS_MAGIC)) {
- dconschat_ready(dc, 0, "wrong magic");
+ if ((dc->flags & F_USE_CROM) !=0)
+ dc->paddr = 0;
+ snprintf(ebuf, sizeof(ebuf), "wrong magic 0x%08x", ptr[0]);
+ dconschat_ready(dc, 0, ebuf);
return(-1);
}
retry = RETRY;
OpenPOWER on IntegriCloud