mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
libdivecomputer.c: Try not to pass NULL to fopen()
C99 7.1.4, says nothing about passing NULL to fopen(), which means that it isn't portable and there are no guaranties that the return will be a NULL pointer or that that a library implementation will not assert or SYSSEGV in the middle of the fopen() branch. libdivecomputer.c's 'dumpfile_name' and 'logfile_name' could cause problems in that regard. A possible fix for #411 Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
304f5e8569
commit
065221aac7
1 changed files with 2 additions and 2 deletions
|
@ -676,7 +676,7 @@ static const char *do_device_import(device_data_t *data)
|
|||
dc_buffer_t *buffer = dc_buffer_new (0);
|
||||
|
||||
rc = dc_device_dump (device, buffer);
|
||||
if (rc == DC_STATUS_SUCCESS) {
|
||||
if (rc == DC_STATUS_SUCCESS && dumpfile_name) {
|
||||
FILE* fp = subsurface_fopen(dumpfile_name, "wb");
|
||||
if (fp != NULL) {
|
||||
fwrite (dc_buffer_get_data (buffer), 1, dc_buffer_get_size (buffer), fp);
|
||||
|
@ -721,7 +721,7 @@ const char *do_libdivecomputer_import(device_data_t *data)
|
|||
data->device = NULL;
|
||||
data->context = NULL;
|
||||
|
||||
if (data->libdc_log)
|
||||
if (data->libdc_log && logfile_name)
|
||||
fp = subsurface_fopen(logfile_name, "w");
|
||||
|
||||
rc = dc_context_new(&data->context);
|
||||
|
|
Loading…
Add table
Reference in a new issue