Invalidate dcons buffer address if the magic is wrong.

This commit is contained in:
Hidetoshi Shimokawa 2004-09-26 12:46:47 +00:00
parent 69560edc13
commit 00fab05d23
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=135821

View File

@ -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;