Package: ripole
Version: 0.2.0-1
Followup-For: Bug #435810
The problem is related to freeing memory.
Here is a little patch.
Common subdirectories: ripole-0.2.0/debian and ripole-0.2.0-new/debian
diff -U 8 -p ripole-0.2.0/ripole.c ripole-0.2.0-new/ripole.c
--- ripole-0.2.0/ripole.c 2005-12-12 04:06:21.000000000 +0100
+++ ripole-0.2.0-new/ripole.c 2007-09-17 21:24:38.000000000 +0200
@@ -38,17 +38,17 @@ static char help[]="ripOLE -i <OLE2 file
Comments:
--------------------------------------------------------------------
Changes:
\------------------------------------------------------------------*/
int ROLE_set_defaults( struct ripOLE_object *role )
{
- role->outputdir = defaultdir;
+ role->outputdir = strdup(defaultdir);
role->debug = 0;
role->verbose = 0;
role->save_unknown_streams = 0;
role->inputfile = NULL;
return 0;
}
@@ -69,31 +69,30 @@ Comments:
Changes:
\------------------------------------------------------------------*/
int ROLE_parse_parameters( struct ripOLE_object *role, int argc, char **argv )
{
int i;
int result = 0;
- role->outputdir = defaultdir;
-
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '-')
{
switch (argv[i][1])
{
case 'i':
i++;
role->inputfile = strdup(argv[i]);
break;
case 'd':
i++;
+ free(role->outputdir);
role->outputdir = strdup(argv[i]);
break;
case 'v':
role->verbose = 1;
break;
case 'V':