Commit 604a4b1b30471be2a4b2401e0d1603917b75d1b3

Philipp Wiesemann 2017-05-27T23:30:21

haiku: Fixed SDL_SetClipboardText() allocating too much memory and cutting text. It allocated pointers instead of chars and passed a wrong size to SDL_strlcpy().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/video/haiku/SDL_bclipboard.cc b/src/video/haiku/SDL_bclipboard.cc
index a49908f..8c4d210 100644
--- a/src/video/haiku/SDL_bclipboard.cc
+++ b/src/video/haiku/SDL_bclipboard.cc
@@ -69,8 +69,8 @@ char *BE_GetClipboardText(_THIS) {
 		result = SDL_strdup("");
 	} else {
 		/* Copy the data and pass on to SDL */
-		result = (char*)SDL_calloc(1, sizeof(char*)*length);
-		SDL_strlcpy(result, text, length);
+		result = (char *)SDL_malloc((length + 1) * sizeof(char));
+		SDL_strlcpy(result, text, length + 1);
 	}
 	
 	return result;