From dbbf57c4a71c02438714228ade66780cc7eea7a0 Mon Sep 17 00:00:00 2001 From: zacheiss Date: Mon, 6 Jul 2009 16:23:15 +0000 Subject: [PATCH] Make sure acl_type is LIST before using the object id as a list_id. --- server/qrtn.pc | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/server/qrtn.pc b/server/qrtn.pc index cf95e434..3bc74c4b 100644 --- a/server/qrtn.pc +++ b/server/qrtn.pc @@ -641,16 +641,20 @@ int find_member(char *list_type, int list_id, client *cl) if (!strcmp(strtrim(list_type), "KERBEROS") && list_id == -cl->client_id) return 1; - /* see if client is a member of list */ - flag = 0; - users_id = cl->users_id; - client_id = -cl->client_id; - EXEC SQL SELECT COUNT(member_id) INTO :flag FROM imembers - WHERE list_id = :list_id - AND ( ( member_type = 'USER' AND member_id = :users_id ) - OR (member_type = 'KERBEROS' AND member_id = :client_id ) ); - if (sqlca.sqlcode == 0) - return flag; + if (!strcmp(strtrim(list_type), "LIST")) + { + /* see if client is a member of list */ + flag = 0; + users_id = cl->users_id; + client_id = -cl->client_id; + EXEC SQL SELECT COUNT(member_id) INTO :flag FROM imembers + WHERE list_id = :list_id + AND ( ( member_type = 'USER' AND member_id = :users_id ) + OR (member_type = 'KERBEROS' AND member_id = :client_id ) ); + if (sqlca.sqlcode == 0) + return flag; + } + return 0; } -- 2.45.1