Merge branch 'coverity-localfileoutputstream-error-handling' into 'master'

glocalfileoutputstream: Tidy up error handling

See merge request GNOME/glib!1994
This commit is contained in:
Sebastian Dröge 2021-03-17 07:43:03 +00:00
commit c53711492c

View File

@ -943,7 +943,7 @@ handle_overwrite_open (const char *filename,
_("Error when getting information for file “%s”: %s"), _("Error when getting information for file “%s”: %s"),
display_name, g_strerror (errsv)); display_name, g_strerror (errsv));
g_free (display_name); g_free (display_name);
goto err_out; goto error;
} }
/* not a regular file */ /* not a regular file */
@ -955,7 +955,7 @@ handle_overwrite_open (const char *filename,
G_IO_ERROR, G_IO_ERROR,
G_IO_ERROR_IS_DIRECTORY, G_IO_ERROR_IS_DIRECTORY,
_("Target file is a directory")); _("Target file is a directory"));
goto err_out; goto error;
} }
else if (!is_symlink || else if (!is_symlink ||
#ifdef S_ISLNK #ifdef S_ISLNK
@ -969,7 +969,7 @@ handle_overwrite_open (const char *filename,
G_IO_ERROR, G_IO_ERROR,
G_IO_ERROR_NOT_REGULAR_FILE, G_IO_ERROR_NOT_REGULAR_FILE,
_("Target file is not a regular file")); _("Target file is not a regular file"));
goto err_out; goto error;
} }
} }
@ -983,7 +983,7 @@ handle_overwrite_open (const char *filename,
G_IO_ERROR_WRONG_ETAG, G_IO_ERROR_WRONG_ETAG,
_("The file was externally modified")); _("The file was externally modified"));
g_free (current_etag); g_free (current_etag);
goto err_out; goto error;
} }
g_free (current_etag); g_free (current_etag);
} }
@ -1078,7 +1078,7 @@ handle_overwrite_open (const char *filename,
G_IO_ERROR_CANT_CREATE_BACKUP, G_IO_ERROR_CANT_CREATE_BACKUP,
_("Backup file creation failed")); _("Backup file creation failed"));
g_free (backup_filename); g_free (backup_filename);
goto err_out; goto error;
} }
bfd = g_open (backup_filename, bfd = g_open (backup_filename,
@ -1092,7 +1092,7 @@ handle_overwrite_open (const char *filename,
G_IO_ERROR_CANT_CREATE_BACKUP, G_IO_ERROR_CANT_CREATE_BACKUP,
_("Backup file creation failed")); _("Backup file creation failed"));
g_free (backup_filename); g_free (backup_filename);
goto err_out; goto error;
} }
/* If needed, Try to set the group of the backup same as the /* If needed, Try to set the group of the backup same as the
@ -1109,7 +1109,7 @@ handle_overwrite_open (const char *filename,
g_unlink (backup_filename); g_unlink (backup_filename);
g_close (bfd, NULL); g_close (bfd, NULL);
g_free (backup_filename); g_free (backup_filename);
goto err_out; goto error;
} }
if ((_g_stat_gid (&original_stat) != _g_stat_gid (&tmp_statbuf)) && if ((_g_stat_gid (&original_stat) != _g_stat_gid (&tmp_statbuf)) &&
@ -1126,7 +1126,7 @@ handle_overwrite_open (const char *filename,
g_unlink (backup_filename); g_unlink (backup_filename);
g_close (bfd, NULL); g_close (bfd, NULL);
g_free (backup_filename); g_free (backup_filename);
goto err_out; goto error;
} }
} }
#endif #endif
@ -1141,7 +1141,7 @@ handle_overwrite_open (const char *filename,
g_close (bfd, NULL); g_close (bfd, NULL);
g_free (backup_filename); g_free (backup_filename);
goto err_out; goto error;
} }
g_close (bfd, NULL); g_close (bfd, NULL);
@ -1156,7 +1156,7 @@ handle_overwrite_open (const char *filename,
g_io_error_from_errno (errsv), g_io_error_from_errno (errsv),
_("Error seeking in file: %s"), _("Error seeking in file: %s"),
g_strerror (errsv)); g_strerror (errsv));
goto err_out; goto error;
} }
} }
@ -1172,7 +1172,7 @@ handle_overwrite_open (const char *filename,
g_io_error_from_errno (errsv), g_io_error_from_errno (errsv),
_("Error removing old file: %s"), _("Error removing old file: %s"),
g_strerror (errsv)); g_strerror (errsv));
goto err_out2; goto error;
} }
if (readable) if (readable)
@ -1189,7 +1189,7 @@ handle_overwrite_open (const char *filename,
_("Error opening file “%s”: %s"), _("Error opening file “%s”: %s"),
display_name, g_strerror (errsv)); display_name, g_strerror (errsv));
g_free (display_name); g_free (display_name);
goto err_out2; goto error;
} }
} }
else else
@ -1207,15 +1207,16 @@ handle_overwrite_open (const char *filename,
g_io_error_from_errno (errsv), g_io_error_from_errno (errsv),
_("Error truncating file: %s"), _("Error truncating file: %s"),
g_strerror (errsv)); g_strerror (errsv));
goto err_out; goto error;
} }
} }
return fd; return fd;
err_out: error:
if (fd >= 0)
g_close (fd, NULL); g_close (fd, NULL);
err_out2:
return -1; return -1;
} }