libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 3dfc077b5c93d2bc05f531b323d32574ae38a36c
parent be4fc7b341f97ca3d25888dd54313c704917fbb8
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 30 Jun 2026 18:55:36 +0200

fix leak

Diffstat:
Msrc/main/extractor_ipc_w32.c | 10++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/extractor_ipc_w32.c b/src/main/extractor_ipc_w32.c @@ -515,8 +515,9 @@ EXTRACTOR_IPC_channel_create_ (struct EXTRACTOR_PluginList *plugin, * "libextractor_plugin_helper" is probably less confusing). */ snprintf (cmd, MAX_PATH, - "rundll32.exe libextractor-3.dll,RundllEntryPoint@16 %lu %lu", - p10_os_inh, p21_os_inh); + "rundll32.exe libextractor-3.dll,RundllEntryPoint@16 %llu %llu", + (unsigned long long) (uintptr_t) p10_os_inh, + (unsigned long long) (uintptr_t) p21_os_inh); cmd[MAX_PATH] = '\0'; startup.cb = sizeof (STARTUPINFOA); if (CreateProcessA (NULL, cmd, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, @@ -606,6 +607,11 @@ EXTRACTOR_IPC_channel_destroy_ (struct EXTRACTOR_Channel *channel) free (channel->ov_write_buffer); channel->ov_write_buffer = NULL; } + if (NULL != channel->old_buf) + { + free (channel->old_buf); + channel->old_buf = NULL; + } if (NULL != channel->plugin) channel->plugin->channel = NULL; free (channel->mdata);