[PATCH 3/3] reg: Use a helper function to resize a memory buffer
Hugh McMaster
hugh.mcmaster at outlook.com
Tue Aug 1 07:31:09 CDT 2017
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/reg/reg.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index 6bac1a8b43..de66a11c57 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -90,6 +90,24 @@ void *heap_xalloc(size_t size)
return buf;
}
+static void *heap_xrealloc(void *buf, size_t size)
+{
+ void *new_buf;
+
+ if (buf)
+ new_buf = HeapReAlloc(GetProcessHeap(), 0, buf, size);
+ else
+ new_buf = HeapAlloc(GetProcessHeap(), 0, size);
+
+ if (!new_buf)
+ {
+ ERR("Out of memory!\n");
+ exit(1);
+ }
+
+ return new_buf;
+}
+
static BOOL heap_free(void *buf)
{
return HeapFree(GetProcessHeap(), 0, buf);
@@ -662,7 +680,7 @@ static int query_value(HKEY key, WCHAR *value_name, WCHAR *path, BOOL recurse)
if (rc == ERROR_MORE_DATA)
{
max_data_bytes = data_size;
- data = HeapReAlloc(GetProcessHeap(), 0, data, max_data_bytes);
+ data = heap_xrealloc(data, max_data_bytes);
}
else break;
}
@@ -754,12 +772,12 @@ static int query_all(HKEY key, WCHAR *path, BOOL recurse)
if (data_size > max_data_bytes)
{
max_data_bytes = data_size;
- data = HeapReAlloc(GetProcessHeap(), 0, data, max_data_bytes);
+ data = heap_xrealloc(data, max_data_bytes);
}
else
{
max_value_len *= 2;
- value_name = HeapReAlloc(GetProcessHeap(), 0, value_name, max_value_len * sizeof(WCHAR));
+ value_name = heap_xrealloc(value_name, max_value_len * sizeof(WCHAR));
}
}
else break;
--
2.13.2
More information about the wine-patches
mailing list