From a38bb946c16428113ae25e9d7c0985517135e133 Mon Sep 17 00:00:00 2001 From: "Sean E. Russell" Date: Thu, 19 Aug 2021 13:28:02 -0500 Subject: [PATCH] Fixes #258: char* arrays in C not being copied correctly --- window/window.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/window/window.h b/window/window.h index 6293ca9..fcf1a6e 100644 --- a/window/window.h +++ b/window/window.h @@ -646,7 +646,15 @@ char* get_title_by_hand(MData m_data){ // Check result value if (result != NULL) { // Convert result to a string - char *name = (char*)result; + char *name = (char*)calloc(strlen(result)+1, sizeof(char*)); + char *rptr = (char*)result; + char *nptr = name; + while (*rptr) { + *nptr = *rptr; + nptr++; + rptr++; + } + *nptr = '\0'; XFree(result); if (name != NULL) { return name; } @@ -658,8 +666,17 @@ char* get_title_by_hand(MData m_data){ // Check result value if (result != NULL) { // Convert result to a string - char *name = (char*)result; + char *name = (char*)calloc(strlen(result)+1, sizeof(char*)); + char *rptr = (char*)result; + char *nptr = name; + while (*rptr) { + *nptr = *rptr; + nptr++; + rptr++; + } + *nptr = '\0'; XFree(result); + return name; }