Blame SOURCES/slang-getkey-memmove.patch

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