From d17928a206aeaa54ba68e322d655ea8fadd31ef4 Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Thu, 12 Mar 1992 03:36:55 +0000
Subject: [PATCH] Fix get_unread_confs.

---
 src/server/ChangeLog    |  5 +++++
 src/server/membership.c | 16 ++++++++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/server/ChangeLog b/src/server/ChangeLog
index 3fd38a297..e4fade4de 100644
--- a/src/server/ChangeLog
+++ b/src/server/ChangeLog
@@ -1,3 +1,8 @@
+Thu Mar 12 04:30:17 1992  Per Cederqvist  (ceder@lysator)
+
+	* membership.c (get_unread_confs): You must be logged in to use
+	  this call.
+
 Mon Mar  9 16:33:45 1992  Per Cederqvist  (ceder@robin)
 
 	* DATAFILE_NAME (server-config.c): Added a comment.
diff --git a/src/server/membership.c b/src/server/membership.c
index ac627c52b..1b6496723 100644
--- a/src/server/membership.c
+++ b/src/server/membership.c
@@ -1,5 +1,5 @@
 /*
- * $Id: membership.c,v 0.8 1991/12/16 23:56:33 ceder Exp $
+ * $Id: membership.c,v 0.9 1992/03/12 03:36:52 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -29,7 +29,7 @@
  * (The person/conf relation).
  */
 
-static char *rcsid = "$Id: membership.c,v 0.8 1991/12/16 23:56:33 ceder Exp $";
+static char *rcsid = "$Id: membership.c,v 0.9 1992/03/12 03:36:52 ceder Exp $";
 
 #include <time.h>
 #include <stdlib.h>
@@ -668,8 +668,9 @@ fast_access_perm(Conf_no  victim,
 	    return member;
     }
 
-     /* Only read in conference struct when really necessary. */
-    if ( (conf_type=cached_get_conf_type( victim )).secret )
+    /* Only read in conference struct when really necessary. */
+    conf_type = cached_get_conf_type (victim);
+    if ( conf_type.secret )
 	return access_perm(victim, NULL, viewer, viewer_p);
 
     if ( conf_type.rd_prot )
@@ -1163,6 +1164,7 @@ get_unread_confs(Pers_no       pers_no,
     Membership *confs;
     u_short n;
 
+    CHK_LOGIN(FAILURE);
     GET_P_STAT(pers_p, pers_no, FAILURE);
 
     result->conf_nos = tmp_alloc (pers_p->conferences.no_of_confs
@@ -1173,8 +1175,10 @@ get_unread_confs(Pers_no       pers_no,
     	 n < pers_p->conferences.no_of_confs;
 	 n++, confs++ )
     {
-	if ( confs->last_text_read
-	    < cached_get_highest_local_no( confs->conf_no ) )
+	if ((confs->last_text_read
+	     < cached_get_highest_local_no (confs->conf_no))
+	    && (fast_access_perm(confs->conf_no, NULL, ACTPERS, ACT_P)
+		> read_protected))
 	{
 	    result->conf_nos[ result->no_of_confs++ ] = confs->conf_no;
 	}
-- 
GitLab