diff options
Diffstat (limited to 'recipes/lilo-sh/files/lilo-0.21-second.patch')
-rw-r--r-- | recipes/lilo-sh/files/lilo-0.21-second.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/recipes/lilo-sh/files/lilo-0.21-second.patch b/recipes/lilo-sh/files/lilo-0.21-second.patch new file mode 100644 index 0000000000..12a9af04c7 --- /dev/null +++ b/recipes/lilo-sh/files/lilo-0.21-second.patch @@ -0,0 +1,36 @@ +I have a problem to report with lilo, and the fix for it. I am not sure +whether this is the right place for it though, I am also CCing the lilo +maintainer Werner Almesberger. + +When lilo gets control from the bios (whether lilo is on disk, or on the +floppy), it is checking the wrong location when it tries to parse the +parameter line construction area to determine whether it needs to clean +up extra blank spaces. This is causing lilo to eat up the last character(s) +of the command line that it passes to the kernel. + +Specifically, the code + +cpcodn: cmp byte ptr (di-1),#32 ! last was space ? + +is using the memory contents of ds:di-1 for the compare. It should +really be using es:di-1. I checked, ds=0x0b00 around here, so the +code ended up checking 0x0b00:(di-1) instead of 0x9000:(di-1). It +is quite possible that the memory that lilo checks has garbage, +causing it to make wrong decision. A "seg es" just before the cmp +fixes the problem. I am attaching the patch below. + +Kanoj + +--- second.0 Mon Sep 20 13:52:01 1999 ++++ second.S Tue Sep 28 10:20:54 1999 +@@ -816,7 +816,8 @@ + je cpcodsp ! yes -> discard next + lodsb ! get next byte + jmp cpcolp +-cpcodn: cmp byte ptr (di-1),#32 ! last was space ? ++cpcodn: seg es ++ cmp byte ptr (di-1),#32 ! last was space ? + jne nocopt ! no -> go on + dec di ! discard it + nocopt: mov si,options ! append variable options + |