[PATCH v2 9/9] server: Avoid using pointer value after realloc.

Rémi Bernon wine at gitlab.winehq.org
Mon Jun 6 01:07:34 CDT 2022


From: Rémi Bernon <rbernon at codeweavers.com>

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 server/queue.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/server/queue.c b/server/queue.c
index d79add56fba..9c5469292fe 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -3350,7 +3350,7 @@ DECL_HANDLER(get_rawinput_buffer)
     struct thread_input *input = current->queue->input;
     data_size_t size = 0, next_size = 0;
     struct list *ptr;
-    char *buf, *cur, *tmp;
+    char *buf, *cur;
     int count = 0, buf_size = 16 * sizeof(struct hardware_msg_data);
 
     if (!req->buffer_size) buf = NULL;
@@ -3372,14 +3372,14 @@ DECL_HANDLER(get_rawinput_buffer)
         if (cur + data->size > buf + get_reply_max_size()) break;
         if (cur + data->size > buf + buf_size)
         {
+            size_t pos = cur - buf;
             buf_size += buf_size / 2 + extra_size;
-            if (!(tmp = realloc( buf, buf_size )))
+            if (!(buf = realloc( buf, buf_size )))
             {
                 set_error( STATUS_NO_MEMORY );
                 return;
             }
-            cur = tmp + (cur - buf);
-            buf = tmp;
+            cur = buf + pos;
         }
 
         memcpy( cur, data, data->size );
-- 
GitLab

https://gitlab.winehq.org/wine/wine/-/merge_requests/180



More information about the wine-devel mailing list