* viking -- GPS Data and Topo Analyzer, Explorer, and Manager
*
* Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net>
+ * Copyright (C) 2007, Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
*
* 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
}
if (options->use_etag) {
gchar *etag_filename = g_strdup_printf("%s.etag", fn);
- gsize etag_length;
+ gsize etag_length = 0;
g_file_get_contents (etag_filename, &(file_options.etag), &etag_length, NULL);
+ g_free (etag_filename);
+ etag_filename = NULL;
/* check if etag is short enough */
- if (etag_length > 100)
+ if (etag_length > 100) {
g_free(file_options.etag);
+ file_options.etag = NULL;
+ }
/* TODO: should check that etag is a valid string */
}
{
g_debug("%s: Couldn't take lock on temporary file \"%s\"\n", __FUNCTION__, tmpfilename);
g_free ( tmpfilename );
+ if (options->use_etag)
+ g_free ( file_options.etag );
return -4;
}
f = g_fopen ( tmpfilename, "w+b" ); /* truncate file and open it */
if ( ! f ) {
g_warning("Couldn't open temporary file \"%s\": %s", tmpfilename, g_strerror(errno));
g_free ( tmpfilename );
+ if (options->use_etag)
+ g_free ( file_options.etag );
return -4;
}
/* server returned an etag value */
gchar *etag_filename = g_strdup_printf("%s.etag", fn);
g_file_set_contents (etag_filename, file_options.new_etag, -1, NULL);
+ g_free (etag_filename);
+ etag_filename = NULL;
}
}