From 00fab05d237aaf23d2fd58b249c50d5b28a8902f Mon Sep 17 00:00:00 2001 From: Hidetoshi Shimokawa Date: Sun, 26 Sep 2004 12:46:47 +0000 Subject: [PATCH] Invalidate dcons buffer address if the magic is wrong. --- usr.sbin/dconschat/dconschat.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/usr.sbin/dconschat/dconschat.c b/usr.sbin/dconschat/dconschat.c index d343811c6be1..6462e3dec3cd 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 @@ dconschat_get_ptr (struct dcons_state *dc) { 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;