commit 3dfc077b5c93d2bc05f531b323d32574ae38a36c
parent be4fc7b341f97ca3d25888dd54313c704917fbb8
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 30 Jun 2026 18:55:36 +0200
fix leak
Diffstat:
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);