mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 15:36:17 +01:00
glocalfile: Add an assertion to help static analysis
Static analysis of the call to `g_dir_new_from_dirp()` is tricky, because the call is across library boundaries and indirected through a vfunc map because it’s private to libglib. Help the static analyser by adding an assertion about the input and output values for `g_dir_new_from_dirp()`. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
parent
b201e028b2
commit
3a7acd24a9
@ -2842,22 +2842,24 @@ g_local_file_measure_size_of_contents (gint fd,
|
||||
gboolean success = TRUE;
|
||||
const gchar *name;
|
||||
GDir *dir;
|
||||
gint saved_errno;
|
||||
|
||||
#ifdef AT_FDCWD
|
||||
{
|
||||
/* If this fails, we want to preserve the errno from fopendir() */
|
||||
/* If this fails, we want to preserve the errno from fdopendir() */
|
||||
DIR *dirp;
|
||||
dirp = fdopendir (fd);
|
||||
saved_errno = errno;
|
||||
dir = dirp ? GLIB_PRIVATE_CALL(g_dir_new_from_dirp) (dirp) : NULL;
|
||||
g_assert ((dirp == NULL) == (dir == NULL));
|
||||
}
|
||||
#else
|
||||
dir = GLIB_PRIVATE_CALL(g_dir_open_with_errno) (dir_name->data, 0);
|
||||
saved_errno = errno;
|
||||
#endif
|
||||
|
||||
if (dir == NULL)
|
||||
{
|
||||
gint saved_errno = errno;
|
||||
|
||||
#ifdef AT_FDCWD
|
||||
close (fd);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user