summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGisle Vanem <gisle.vanem@gmail.com>2019-05-23 17:13:39 +0200
committerGitHub <noreply@github.com>2019-05-23 17:13:39 +0200
commit8144ba38c383718355d8af2ed8330414edcbbc83 (patch)
tree9d611dac83c46ec6cbc61f59541321f945f9c6e8
parent9ad313dcb89b540955500538d47ca49b55d60b3c (diff)
downloadcurl-8144ba38c383718355d8af2ed8330414edcbbc83.tar.gz
tool_parse_cfg: Avoid 2 fopen() for WIN32
Using the memdebug.h mem-leak feature, I noticed 2 calls like: FILE tool_parsecfg.c:70 fopen("c:\Users\Gisle\AppData\Roaming\_curlrc","rt") FILE tool_parsecfg.c:114 fopen("c:\Users\Gisle\AppData\Roaming\_curlrc","rt") No need for 'fopen(), 'fclose()' and a 'fopen()' yet again.
-rw-r--r--src/tool_parsecfg.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c
index e36b06c23..683e25ac1 100644
--- a/src/tool_parsecfg.c
+++ b/src/tool_parsecfg.c
@@ -46,7 +46,7 @@ static char *my_get_line(FILE *fp);
/* return 0 on everything-is-fine, and non-zero otherwise */
int parseconfig(const char *filename, struct GlobalConfig *global)
{
- FILE *file;
+ FILE *file = NULL;
char filebuffer[512];
bool usedarg = FALSE;
int rc = 0;
@@ -69,7 +69,6 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
*/
file = fopen(filebuffer, FOPEN_READTEXT);
if(file != NULL) {
- fclose(file);
filename = filebuffer;
}
else {
@@ -110,7 +109,9 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
#endif
}
- if(strcmp(filename, "-"))
+ if(file != NULL) /* WIN32: no need to fopen() again */
+ ;
+ else if(strcmp(filename, "-"))
file = fopen(filename, FOPEN_READTEXT);
else
file = stdin;