From 6e799707077193baa008edcb040aadcd913bac90 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 3 Jan 2008 20:32:11 -0800 Subject: [PATCH] Fix incorrect handling of overlapping memory areas in bcopy32 bcopy32 had the test for forwards vs. backwards copy backwards, which of course resulted in disaster when memory areas actually overlapped themselves. --- NEWS | 5 ++++- bcopy32.inc | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 3ba83ce..13d7197 100644 --- a/NEWS +++ b/NEWS @@ -10,7 +10,10 @@ Changes in 3.55: but that MAY be reverted in the future if it causes problems. * Documentation text files moved to a common "doc" directory; - man pages from the Debian project added to the "man" directory. + man pages from the Debian project added to the "man" + directory. + * Correct bug with self-overlapping memory areas when using + the shuffle interface. Changes in 3.54: * Add "menu separator", "menu indent", "menu disabled" diff --git a/bcopy32.inc b/bcopy32.inc index 28b70fa..0f01284 100644 --- a/bcopy32.inc +++ b/bcopy32.inc @@ -135,8 +135,8 @@ bcopy: push eax cmp esi,-1 je .bzero - cmp esi,edi ; If source > destination, we might - ja .reverse ; have to copy backwards + cmp esi,edi ; If source < destination, we might + jb .reverse ; have to copy backwards .forward: mov al,cl ; Save low bits -- 2.7.4