Blame SOURCES/slang-getkey-memmove.patch

c2aa0d
commit d338fd6e949ef62e7eac4eb5c024059e02158b06
c2aa0d
Author: Miroslav Lichvar <mlichvar@redhat.com>
c2aa0d
Date:   Wed Jul 25 13:07:42 2018 +0200
c2aa0d
c2aa0d
    Replaced memcpy in SLang_getkey
c2aa0d
    
c2aa0d
    memcpy() is not defined for overlapping buffers, i.e. it may copy bytes
c2aa0d
    in any direction. As SLMEMMOVE is not defined in slang, replace the
c2aa0d
    SLMEMCPY call with a for loop.
c2aa0d
c2aa0d
diff --git a/src/slgetkey.c b/src/slgetkey.c
c2aa0d
index 86e7946..d9bc678 100644
c2aa0d
--- a/src/slgetkey.c
c2aa0d
+++ b/src/slgetkey.c
c2aa0d
@@ -40,13 +40,13 @@ unsigned int SLang_getkey (void)
c2aa0d
 
c2aa0d
    if (SLang_Input_Buffer_Len)
c2aa0d
      {
c2aa0d
-	unsigned int imax;
c2aa0d
+	unsigned int i, imax;
c2aa0d
 	ch = (unsigned int) *SLang_Input_Buffer;
c2aa0d
 	SLang_Input_Buffer_Len--;
c2aa0d
 	imax = SLang_Input_Buffer_Len;
c2aa0d
 
c2aa0d
-	SLMEMCPY ((char *) SLang_Input_Buffer,
c2aa0d
-		(char *) (SLang_Input_Buffer + 1), imax);
c2aa0d
+	for (i = 0; i < imax; i++)
c2aa0d
+	  SLang_Input_Buffer[i] = SLang_Input_Buffer[i + 1];
c2aa0d
      }
c2aa0d
    else if (SLANG_GETKEY_ERROR == (ch = _pSLsys_getkey ())) return ch;
c2aa0d