summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorAlessandro Bono <alessandro.bono369@gmail.com>2022-10-31 15:17:18 +0100
committerRay Strode <halfline@gmail.com>2023-04-28 19:41:28 +0000
commit4f81a7dd95522a870f731d4587605fcafcda68fd (patch)
tree499b2dabee06e8a39e3d58713f8006a5b858ca36 /daemon
parent02fcbf591903dd32a0af614d31f5d13c0eb56576 (diff)
downloadgdm-4f81a7dd95522a870f731d4587605fcafcda68fd.tar.gz
gdm-display-access-file: Use g_auto*
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gdm-display-access-file.c62
1 files changed, 20 insertions, 42 deletions
diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c
index d0dd5cc8..28d7b7b2 100644
--- a/daemon/gdm-display-access-file.c
+++ b/daemon/gdm-display-access-file.c
@@ -222,7 +222,7 @@ _get_uid_and_gid_for_user (const char *username,
static void
clean_up_stale_auth_subdirs (void)
{
- GDir *dir;
+ g_autoptr(GDir) dir = NULL;
const char *filename;
dir = g_dir_open (GDM_XAUTH_DIR, 0, NULL);
@@ -232,16 +232,14 @@ clean_up_stale_auth_subdirs (void)
}
while ((filename = g_dir_read_name (dir)) != NULL) {
- char *path;
+ g_autofree char *path = NULL;
path = g_build_filename (GDM_XAUTH_DIR, filename, NULL);
/* Will only succeed if the directory is empty
*/
g_rmdir (path);
- g_free (path);
}
- g_dir_close (dir);
}
static FILE *
@@ -249,9 +247,9 @@ _create_xauth_file_for_user (const char *username,
char **filename,
GError **error)
{
- char *template;
+ g_autofree char *template = NULL;
+ g_autofree char *auth_filename = NULL;
const char *dir_name;
- char *auth_filename;
int fd;
FILE *fp;
uid_t uid;
@@ -261,11 +259,6 @@ _create_xauth_file_for_user (const char *username,
*filename = NULL;
- template = NULL;
- auth_filename = NULL;
- fp = NULL;
- fd = -1;
-
/* Create directory if not exist, then set permission 0711 and ownership root:gdm */
if (g_file_test (GDM_XAUTH_DIR, G_FILE_TEST_IS_DIR) == FALSE) {
g_remove (GDM_XAUTH_DIR);
@@ -274,7 +267,7 @@ _create_xauth_file_for_user (const char *username,
G_FILE_ERROR,
g_file_error_from_errno (errno),
g_strerror (errno));
- goto out;
+ return NULL;
}
g_chmod (GDM_XAUTH_DIR, 0711);
@@ -284,7 +277,7 @@ _create_xauth_file_for_user (const char *username,
GDM_DISPLAY_ERROR_GETTING_USER_INFO,
_("Could not find user ā€œ%sā€ on system"),
GDM_USERNAME);
- goto out;
+ return NULL;
}
if (chown (GDM_XAUTH_DIR, 0, gid) != 0) {
@@ -305,8 +298,7 @@ _create_xauth_file_for_user (const char *username,
GDM_DISPLAY_ERROR_GETTING_USER_INFO,
_("Could not find user ā€œ%sā€ on system"),
username);
- goto out;
-
+ return NULL;
}
template = g_strdup_printf (GDM_XAUTH_DIR
@@ -324,7 +316,7 @@ _create_xauth_file_for_user (const char *username,
"Unable to create temp dir from tempalte '%s': %s",
template,
g_strerror (errno));
- goto out;
+ return NULL;
}
g_debug ("GdmDisplayAccessFile: chowning %s to %u:%u",
@@ -337,7 +329,7 @@ _create_xauth_file_for_user (const char *username,
"Unable to change permission of '%s': %s",
dir_name,
g_strerror (errno));
- goto out;
+ return NULL;
}
auth_filename = g_build_filename (dir_name, "database", NULL);
@@ -356,7 +348,7 @@ _create_xauth_file_for_user (const char *username,
"Unable to open '%s': %s",
auth_filename,
g_strerror (errno));
- goto out;
+ return NULL;
}
g_debug ("GdmDisplayAccessFile: chowning %s to %u:%u", auth_filename, (guint)uid, (guint)gid);
@@ -369,8 +361,7 @@ _create_xauth_file_for_user (const char *username,
auth_filename,
g_strerror (errno));
close (fd);
- fd = -1;
- goto out;
+ return NULL;
}
/* now open up permissions on per-session directory */
@@ -385,22 +376,12 @@ _create_xauth_file_for_user (const char *username,
g_file_error_from_errno (errno),
g_strerror (errno));
close (fd);
- fd = -1;
- goto out;
+ return NULL;
}
- *filename = auth_filename;
- auth_filename = NULL;
-
- /* don't close it */
- fd = -1;
-out:
- g_free (template);
- g_free (auth_filename);
- if (fd != -1) {
- close (fd);
- }
+ *filename = g_steal_pointer (&auth_filename);
+ /* don't close fd on purpose */
return fp;
}
@@ -408,19 +389,18 @@ gboolean
gdm_display_access_file_open (GdmDisplayAccessFile *file,
GError **error)
{
- GError *create_error;
+ g_autoptr(GError) create_error = NULL;
g_return_val_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file), FALSE);
g_return_val_if_fail (file->fp == NULL, FALSE);
g_return_val_if_fail (file->path == NULL, FALSE);
- create_error = NULL;
file->fp = _create_xauth_file_for_user (file->username,
&file->path,
&create_error);
if (file->fp == NULL) {
- g_propagate_error (error, create_error);
+ g_propagate_error (error, g_steal_pointer (&create_error));
return FALSE;
}
@@ -477,7 +457,7 @@ gdm_display_access_file_add_display (GdmDisplayAccessFile *file,
gsize *cookie_size,
GError **error)
{
- GError *add_error;
+ g_autoptr(GError) add_error = NULL;
gboolean display_added;
g_return_val_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file), FALSE);
@@ -485,12 +465,11 @@ gdm_display_access_file_add_display (GdmDisplayAccessFile *file,
g_return_val_if_fail (display != NULL, FALSE);
g_return_val_if_fail (cookie != NULL, FALSE);
- add_error = NULL;
*cookie = gdm_generate_random_bytes (GDM_DISPLAY_ACCESS_COOKIE_SIZE,
&add_error);
if (*cookie == NULL) {
- g_propagate_error (error, add_error);
+ g_propagate_error (error, g_steal_pointer (&add_error));
return FALSE;
}
@@ -503,7 +482,7 @@ gdm_display_access_file_add_display (GdmDisplayAccessFile *file,
if (!display_added) {
g_free (*cookie);
*cookie = NULL;
- g_propagate_error (error, add_error);
+ g_propagate_error (error, g_steal_pointer (&add_error));
return FALSE;
}
@@ -574,7 +553,7 @@ gdm_display_access_file_add_display_with_cookie (GdmDisplayAccessFile *file,
void
gdm_display_access_file_close (GdmDisplayAccessFile *file)
{
- char *auth_dir;
+ g_autofree char *auth_dir = NULL;
g_return_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file));
g_return_if_fail (file->fp != NULL);
@@ -598,7 +577,6 @@ gdm_display_access_file_close (GdmDisplayAccessFile *file)
auth_dir,
g_strerror (errno));
}
- g_free (auth_dir);
}
g_free (file->path);