Browse Source

Add null termination to Wayland_data_source_get_data() if requested

Fixes https://github.com/libsdl-org/SDL/issues/6083
Sam Lantinga 2 years ago
parent
commit
6e007c36e7
1 changed files with 10 additions and 2 deletions
  1. 10 2
      src/video/wayland/SDL_waylanddatamanager.c

+ 10 - 2
src/video/wayland/SDL_waylanddatamanager.c

@@ -305,14 +305,22 @@ Wayland_data_source_get_data(SDL_WaylandDataSource *source,
     } else {
         mime_data = mime_data_list_find(&source->mimes, mime_type);
         if (mime_data != NULL && mime_data->length > 0) {
-            buffer = SDL_malloc(mime_data->length);
+            size_t buffer_length = mime_data->length;
+
+            if (null_terminate == SDL_TRUE) {
+                ++buffer_length;
+            }
+            buffer = SDL_malloc(buffer_length);
             if (buffer == NULL) {
                 *length = SDL_OutOfMemory();
             } else {
                 *length = mime_data->length;
                 SDL_memcpy(buffer, mime_data->data, mime_data->length);
+                if (null_terminate) {
+                    *((Uint8 *)buffer + mime_data->length) = 0;
+                }
             }
-       }
+        }
     }
 
     return buffer;