Fix some of the memory leaks and uninitialized variables which valgrind
notices.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
$Id: cd-info.c,v 1.47 2003/11/16 19:30:45 rocky Exp $
|
||||
$Id: cd-info.c,v 1.48 2004/02/07 02:40:20 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
Copyright (C) 1996,1997,1998 Gerd Knorr <kraxel@bytesex.org>
|
||||
and Heiko Ei<45>feldt <heiko@hexco.de>
|
||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
|
||||
and Heiko Ei<45>feldt <heiko@hexco.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -203,7 +203,7 @@ parse_options (int argc, const char *argv[])
|
||||
poptContext optCon = poptGetContext (NULL, argc, argv, optionsTable, 0);
|
||||
|
||||
program_name = strrchr(argv[0],'/');
|
||||
program_name = program_name ? program_name+1 : strdup(argv[0]);
|
||||
program_name = program_name ? strdup(program_name+1) : strdup(argv[0]);
|
||||
|
||||
while ((opt = poptGetNextOpt (optCon)) != -1) {
|
||||
switch (opt) {
|
||||
@@ -242,6 +242,7 @@ parse_options (int argc, const char *argv[])
|
||||
break;
|
||||
|
||||
default:
|
||||
poptFreeContext(optCon);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -252,6 +253,8 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf (stderr,
|
||||
"%s: Source specified in option %s and as %s\n",
|
||||
program_name, source_name, remaining_arg);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -264,12 +267,15 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf (stderr,
|
||||
"%s: Source specified in previously %s and %s\n",
|
||||
program_name, source_name, remaining_arg);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
poptFreeContext(optCon);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cd-read.c,v 1.15 2003/11/10 03:47:37 rocky Exp $
|
||||
$Id: cd-read.c,v 1.16 2004/02/07 02:40:20 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -229,7 +229,7 @@ parse_options (int argc, const char *argv[])
|
||||
poptContext optCon = poptGetContext (NULL, argc, argv, optionsTable, 0);
|
||||
|
||||
program_name = strrchr(argv[0],'/');
|
||||
program_name = program_name ? program_name+1 : strdup(argv[0]);
|
||||
program_name = program_name ? strdup(program_name+1) : strdup(argv[0]);
|
||||
|
||||
while ((opt = poptGetNextOpt (optCon)) != -1)
|
||||
switch (opt)
|
||||
@@ -274,6 +274,8 @@ parse_options (int argc, const char *argv[])
|
||||
break;
|
||||
case OP_VERSION:
|
||||
print_version(program_name, VERSION, 0, true);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_SUCCESS);
|
||||
break;
|
||||
|
||||
@@ -282,6 +284,8 @@ parse_options (int argc, const char *argv[])
|
||||
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
|
||||
poptStrerror(opt));
|
||||
fprintf (stderr, "error while parsing command line - try --help\n");
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -292,6 +296,8 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf (stderr,
|
||||
"%s: Source specified in option %s and as %s\n",
|
||||
program_name, source_name, remaining_arg);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -304,6 +310,8 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf (stderr,
|
||||
"%s: Source specified in previously %s and %s\n",
|
||||
program_name, source_name, remaining_arg);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
}
|
||||
@@ -320,6 +328,8 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf(stderr,
|
||||
"%s: Need to give a read mode (audio, m1f1, m1f2, m2f1 or m2f2)\n",
|
||||
program_name);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit(10);
|
||||
}
|
||||
|
||||
@@ -338,6 +348,7 @@ parse_options (int argc, const char *argv[])
|
||||
" the sector to read (%lu)\n",
|
||||
program_name, (unsigned long) opts.end_lsn,
|
||||
(unsigned long) opts.num_sectors);
|
||||
poptFreeContext(optCon);
|
||||
exit(12);
|
||||
}
|
||||
opts.start_lsn = opts.end_lsn - opts.num_sectors + 1;
|
||||
@@ -356,6 +367,8 @@ parse_options (int argc, const char *argv[])
|
||||
"%s: end LSN (%lu) needs to be less than start LSN (%lu)\n",
|
||||
program_name, (unsigned long) opts.start_lsn,
|
||||
(unsigned long) opts.end_lsn);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit(13);
|
||||
}
|
||||
if (opts.num_sectors != opts.end_lsn - opts.start_lsn + 1)
|
||||
@@ -365,11 +378,14 @@ parse_options (int argc, const char *argv[])
|
||||
"and count (%d)\n",
|
||||
program_name, (unsigned long) opts.start_lsn,
|
||||
(unsigned long) opts.end_lsn, opts.num_sectors);
|
||||
poptFreeContext(optCon);
|
||||
free(program_name);
|
||||
exit(14);
|
||||
}
|
||||
opts.num_sectors = opts.end_lsn - opts.start_lsn + 1;
|
||||
}
|
||||
|
||||
poptFreeContext(optCon);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -536,6 +552,8 @@ main(int argc, const char *argv[])
|
||||
|
||||
if (opts.output_file) close(output_fd);
|
||||
|
||||
cdio_destroy(cdio);
|
||||
return 0;
|
||||
myexit(cdio, EXIT_SUCCESS);
|
||||
/* Not reached:*/
|
||||
return(EXIT_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: iso-info.c,v 1.1 2004/02/01 16:00:06 rocky Exp $
|
||||
$Id: iso-info.c,v 1.2 2004/02/07 02:40:20 rocky Exp $
|
||||
|
||||
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -102,7 +102,7 @@ parse_options (int argc, const char *argv[])
|
||||
poptContext optCon = poptGetContext (NULL, argc, argv, optionsTable, 0);
|
||||
|
||||
program_name = strrchr(argv[0],'/');
|
||||
program_name = program_name ? program_name+1 : strdup(argv[0]);
|
||||
program_name = program_name ? strdup(program_name+1) : strdup(argv[0]);
|
||||
|
||||
while ((opt = poptGetNextOpt (optCon)) != -1) {
|
||||
switch (opt) {
|
||||
@@ -119,11 +119,13 @@ parse_options (int argc, const char *argv[])
|
||||
fprintf (stderr,
|
||||
"%s: Source specified in previously %s and %s\n",
|
||||
program_name, source_name, remaining_arg);
|
||||
poptFreeContext(optCon);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
poptFreeContext(optCon);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -287,5 +289,6 @@ main(int argc, const char *argv[])
|
||||
|
||||
iso9660_close(iso);
|
||||
/* Not reached:*/
|
||||
free(program_name);
|
||||
return(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
10
src/util.c
10
src/util.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: util.c,v 1.3 2004/01/10 03:21:50 rocky Exp $
|
||||
$Id: util.c,v 1.4 2004/02/07 02:40:20 rocky Exp $
|
||||
|
||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -29,13 +29,14 @@ char *program_name;
|
||||
void
|
||||
myexit(CdIo *cdio, int rc)
|
||||
{
|
||||
if (NULL != cdio)
|
||||
cdio_destroy(cdio);
|
||||
if (NULL != cdio) cdio_destroy(cdio);
|
||||
if (NULL != program_name) free(program_name);
|
||||
if (NULL != source_name) free(source_name);
|
||||
exit(rc);
|
||||
}
|
||||
|
||||
void
|
||||
print_version (const char *program_name, const char *version,
|
||||
print_version (char *program_name, const char *version,
|
||||
int no_header, bool version_only)
|
||||
{
|
||||
|
||||
@@ -61,6 +62,7 @@ PARTICULAR PURPOSE.\n\
|
||||
printf("Default CD-ROM device: %s\n", default_device);
|
||||
else
|
||||
printf("No CD-ROM device found.\n");
|
||||
free(program_name);
|
||||
exit(100);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: util.h,v 1.1 2003/09/21 04:21:39 rocky Exp $
|
||||
$Id: util.h,v 1.2 2004/02/07 02:40:20 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -94,7 +94,7 @@ extern cdio_log_handler_t gl_default_cdio_log_handler;
|
||||
|
||||
void myexit(CdIo *cdio, int rc);
|
||||
|
||||
void print_version (const char *program_name, const char *version,
|
||||
void print_version (char *program_name, const char *version,
|
||||
int no_header, bool version_only);
|
||||
|
||||
char *fillout_device_name(const char *device_name);
|
||||
|
||||
Reference in New Issue
Block a user