diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 5411a5c8f4e063da0110fb9e618a76fb0b35e9e5..1645a5ec8d72195af643f64e71902b34f4d855e6 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.29 1996/11/14 16:08:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.30 1996/11/20 22:34:36 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -475,6 +475,7 @@ SendQuery(bool * success_p, PsqlSettings * settings, const char *query, pclose(fp); else fclose(fp); + free(settings->gfname); settings->gfname = NULL; break; } else { @@ -1011,7 +1012,11 @@ HandleSlashCmds(PsqlSettings * settings, if (settings->opt.caption) free(settings->opt.caption); if (!optarg) + { + if (settings->opt.caption) + free(settings->opt.caption); settings->opt.caption = NULL; + } else if (!(settings->opt.caption = strdup(optarg))) { perror("malloc"); exit(1); @@ -1083,7 +1088,7 @@ HandleSlashCmds(PsqlSettings * settings, if (optarg) fs = optarg; if (settings->opt.fieldSep); - free(settings->opt.fieldSep); + free(settings->opt.fieldSep); if (!(settings->opt.fieldSep = strdup(fs))) { perror("malloc"); exit(1); @@ -1093,7 +1098,7 @@ HandleSlashCmds(PsqlSettings * settings, break; } case 'g': /* \g means send query */ - settings->gfname = optarg; + settings->gfname = strdup(optarg); status = 0; break; case 'h': /* help */ @@ -1151,12 +1156,14 @@ HandleSlashCmds(PsqlSettings * settings, if (toggle(settings, &settings->opt.standard, "standard SQL separaters and padding")) { settings->opt.html3 = settings->opt.expanded = 0; settings->opt.align = settings->opt.header = 1; - free(settings->opt.fieldSep); + if (settings->opt.fieldSep) + free(settings->opt.fieldSep); settings->opt.fieldSep = strdup("|"); if (!settings->quiet) fprintf(stderr, "field separater changed to '%s'\n", settings->opt.fieldSep); } else { - free(settings->opt.fieldSep); + if (settings->opt.fieldSep) + free(settings->opt.fieldSep); settings->opt.fieldSep = strdup(DEFAULT_FIELD_SEP); if (!settings->quiet) fprintf(stderr, "field separater changed to '%s'\n", settings->opt.fieldSep);