Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Oct 1997 13:44:17 -0800 (PST)
From:      Jonathan Mini <mini@d198-232.uoregon.edu>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   bin/4901: usr.sbin/mksodsfs/bootcode.asm references wrong register.
Message-ID:  <199710302144.NAA27542@d198-232.uoregon.edu>
Resent-Message-ID: <199710302150.NAA13487@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         4901
>Category:       bin
>Synopsis:       usr.sbin/mksodsfs/bootcode.asm references wrong register.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Oct 30 13:50:01 PST 1997
>Last-Modified:
>Originator:     Jonathan Mini
>Organization:
Ingenious Productions
>Release:        FreeBSD 2.2.1-RELEASE i386
>Environment:

3.0-981028-SNAP

>Description:

  usr.sbin/mkdosfs/bootcode.asm attempts to set ds to 0x0040, but misses and
sets dx. oops. bootcode.asm will set a random segment's offset 0x72 to 0x1234.

>How-To-Repeat:

 $ cvs co mkdosfs
 $ cd mkdosfs
 $ more bootcode.asm

 At line 90 he source will read :

        mov     ax, *0x40       ; write 0x1234 to address 0x472 --
        push    ax              ; tell the BIOS that this is a warm boot
        pop     dx
        mov     0x72, *0x1234
        jmpf    0xfff0,0xf000   ; jump to CPU initialization code

  note the 'pop dx'. Oops

>Fix:

 Apply this diff to usr.sbin/mkdosfs/bootcode.asm :

69c69
<       pop     dx
---
>       pop     ds
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710302144.NAA27542>