Fix logging for disabled pool_passwd
authorMuhammad Usama <m.usama@gmail.com>
Tue, 29 Mar 2022 14:31:49 +0000 (19:31 +0500)
committerMuhammad Usama <m.usama@gmail.com>
Tue, 29 Mar 2022 14:31:49 +0000 (19:31 +0500)
Refrain from emitting 'password file descriptor is NULL' warning
and error messages when pool_passwd is disabled.

src/auth/pool_passwd.c

index 81c258b57c97d1f40ecef6d36a886341a228e391..fb4ee3528399e3bbe98e89e0857f5f957bbafe6b 100644 (file)
@@ -56,6 +56,12 @@ pool_init_pool_passwd(char *pool_passwd_filename, POOL_PASSWD_MODE mode)
        if (passwd_fd)
                return;
 
+       if (pool_passwd_filename == NULL)
+       {
+               saved_passwd_filename[0] = '\0'; /* indicate pool_passwd is disabled */
+               return;
+       }
+
        pool_passwd_mode = mode;
 
        if (saved_passwd_filename[0] == '\0')
@@ -194,8 +200,13 @@ pool_get_passwd(char *username)
                                (errmsg("unable to get password, username is NULL")));
 
        if (!passwd_fd)
-               ereport(ERROR,
+       {
+               if (strlen(saved_passwd_filename))
+                       ereport(ERROR,
                                (errmsg("unable to get password, password file descriptor is NULL")));
+               else
+                       return NULL;
+       }
 
        rewind(passwd_fd);
        name[0] = '\0';
@@ -340,13 +351,14 @@ pool_get_user_credentials(char *username)
        if (!username)
                ereport(ERROR,
                                (errmsg("unable to get password, username is NULL")));
-
        if (!passwd_fd)
        {
-               ereport(WARNING,
+               if (strlen(saved_passwd_filename))
+                       ereport(WARNING,
                                (errmsg("unable to get password, password file descriptor is NULL")));
                return NULL;
        }
+
        rewind(passwd_fd);
 
        while (!feof(passwd_fd) && !ferror(passwd_fd))
@@ -650,7 +662,7 @@ read_pool_key(char *key_file_path)
        if (stat_buf.st_mode & (S_IRWXG | S_IRWXO))
        {
                ereport(WARNING,
-                               (errmsg("pool key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n",
+                               (errmsg("pool key file \"%s\" has group or world access; permissions should be u=rw (0600) or less",
                                                key_file_path)));
                /* do we want to allow unsecure pool key file ? */
                /* fclose(fp); */
@@ -720,4 +732,4 @@ chceck_password_type_is_not_md5(char *username, char *password_in_config)
        }
 
        return 0;
-}
\ No newline at end of file
+}