mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +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
3c794d0275
commit
4d8168cc57
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…
Reference in a new issue