diff options
author | simokawa <simokawa@FreeBSD.org> | 2004-09-26 12:46:47 +0000 |
---|---|---|
committer | simokawa <simokawa@FreeBSD.org> | 2004-09-26 12:46:47 +0000 |
commit | 27603055755a1659f46f45eac4a879f7d0ac9736 (patch) | |
tree | 7b3df3b2bd8a86c2ef05b6891bf47b9f5105d519 /usr.sbin | |
parent | b897378c211b1cf410c6c25779535b6da61a074d (diff) | |
download | FreeBSD-src-27603055755a1659f46f45eac4a879f7d0ac9736.zip FreeBSD-src-27603055755a1659f46f45eac4a879f7d0ac9736.tar.gz |
Invalidate dcons buffer address if the magic is wrong.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/dconschat/dconschat.c | 6 |
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; |