changeset 86155:e0c2a22ecd27 userprofile

Fix return type: don't squeeze an oid into an int.
author Sjoerd Mullender <sjoerd@acm.org>
date Tue, 26 Jul 2022 10:37:30 +0200
parents 3fa7717ad6ef
children 4eab9935b32f 3cfcabf6d41b
files sql/backends/monet5/sql_user.c sql/common/sql_backend.c sql/common/sql_backend.h sql/server/sql_privileges.c
diffstat 4 files changed, 10 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -472,14 +472,10 @@ monet5_create_user(ptr _mvc, str user, s
 	return ret;
 }
 
-static int
+static oid
 monet5_find_user(ptr mp, str user)
 {
-	mvc *m = (mvc *) mp;
-	oid rid = getUserOIDByName(m, user);
-	if (is_oid_nil(rid))
-		return -1;
-	return rid;
+	return getUserOIDByName((mvc *) mp, user);
 }
 
 str
--- a/sql/common/sql_backend.c
+++ b/sql/common/sql_backend.c
@@ -51,7 +51,7 @@ backend_drop_user(ptr mvc, char *user)
 	return FALSE;
 }
 
-int
+oid
 backend_find_user(ptr m, char *user)
 {
 	if (be_funcs.ffuser != NULL)
--- a/sql/common/sql_backend.h
+++ b/sql/common/sql_backend.h
@@ -17,7 +17,7 @@ typedef void (*freecode_fptr) (const cha
 
 typedef char *(*create_user_fptr) (ptr mvc, char *user, char *passwd, char enc, char *fullname, sqlid schema_id, char *schema_path, sqlid grantor_id, lng max_memory, int max_workers, str optimizer, sqlid role_id);
 typedef int  (*drop_user_fptr) (ptr mvc, char *user);
-typedef int  (*find_user_fptr) (ptr mvc, char *user);
+typedef oid  (*find_user_fptr) (ptr mvc, char *user);
 typedef void (*create_privileges_fptr) (ptr mvc, sql_schema *s);
 typedef int  (*schema_has_user_fptr) (ptr mvc, sql_schema *s);
 typedef int  (*alter_user_fptr) (ptr mvc, str user, str passwd, char enc, sqlid schema_id, char *schema_path, str oldpasswd, sqlid role_id);
@@ -52,7 +52,7 @@ extern void backend_freecode(const char 
 
 extern char *backend_create_user(ptr mvc, char *user, char *passwd, char enc, char *fullname, sqlid defschemid, char *schema_path, sqlid grantor, lng max_memory, int max_workers, char *optimizer, sqlid role_id);
 extern int  backend_drop_user(ptr mvc, char *user);
-extern int  backend_find_user(ptr mp, char *user);
+extern oid  backend_find_user(ptr mp, char *user);
 extern void backend_create_privileges(ptr mvc, sql_schema *s);
 extern int  backend_schema_has_user(ptr mvc, sql_schema *s);
 extern int	backend_alter_user(ptr mvc, str user, str passwd, char enc, sqlid schema_id, char *schema_path, str oldpasswd, sqlid role_id);
--- a/sql/server/sql_privileges.c
+++ b/sql/server/sql_privileges.c
@@ -579,7 +579,7 @@ sql_grant_role(mvc *m, str grantee, str 
 	if (is_oid_nil(rid))
 		throw(SQL, "sql.grant_role", SQLSTATE(M1M05) "GRANT: no such role '%s' or grantee '%s'", role, grantee);
 	role_id = store->table_api.column_find_sqlid(m->session->tr, auths_id, rid);
-	if (backend_find_user(m, role) >= 0)
+	if (!is_oid_nil(backend_find_user(m, role)))
 		throw(SQL,"sql.grant_role", SQLSTATE(M1M05) "GRANT: '%s' is a USER not a ROLE", role);
 	if (!admin_privs(grantor) && !role_granting_privs(m, rid, role_id, grantor))
 		throw(SQL,"sql.grant_role", SQLSTATE(0P000) "GRANT: Insufficient privileges to grant ROLE '%s'", role);
@@ -789,7 +789,7 @@ sql_create_user(mvc *sql, char *user, ch
 	if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id))
 		throw(SQL,"sql.create_user", SQLSTATE(42M31) "Insufficient privileges to create user '%s'", user);
 
-	if (backend_find_user(sql, user) >= 0)
+	if (!is_oid_nil(backend_find_user(sql, user)))
 		throw(SQL,"sql.create_user", SQLSTATE(42M31) "CREATE USER: user '%s' already exists", user);
 
 	if (schema) {
@@ -952,7 +952,7 @@ sql_alter_user(mvc *sql, char *user, cha
 	if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id) && user != NULL && strcmp(user, get_string_global_var(sql, "current_user")) != 0)
 		throw(SQL,"sql.alter_user", SQLSTATE(M1M05) "Insufficient privileges to change user '%s'", user);
 
-	if (user != NULL && backend_find_user(sql, user) < 0)
+	if (user != NULL && is_oid_nil(backend_find_user(sql, user)))
 		throw(SQL,"sql.alter_user", SQLSTATE(42M32) "ALTER USER: no such user '%s'", user);
 	if (schema) {
 		if (!(s = find_sql_schema(sql->session->tr, schema)))
@@ -972,9 +972,9 @@ sql_rename_user(mvc *sql, char *olduser,
 	if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id))
 		throw(SQL,"sql.rename_user", SQLSTATE(M1M05) "ALTER USER: insufficient privileges to rename user '%s'", olduser);
 
-	if (backend_find_user(sql, olduser) < 0)
+	if (is_oid_nil(backend_find_user(sql, olduser)))
 		throw(SQL,"sql.rename_user", SQLSTATE(42M32) "ALTER USER: no such user '%s'", olduser);
-	if (backend_find_user(sql, newuser) >= 0)
+	if (!is_oid_nil(backend_find_user(sql, newuser)))
 		throw(SQL,"sql.rename_user", SQLSTATE(42M31) "ALTER USER: user '%s' already exists", newuser);
 	if (backend_rename_user(sql, olduser, newuser) == FALSE)
 		throw(SQL,"sql.rename_user", SQLSTATE(M1M05) "%s", sql->errstr);