From:	CSBVAX::CSBVAX::MRGATE::"SMTP::UUNET.UU.NET::MUNNARI!CSC.ANU.OZ.AU!GIH900" 21-DEC-1988 21:10
To:	MRGATE::"ARISIA::EVERHART"
Subj:	Re: VMS NEWS - V5.6 Bug fix


Return-path: munnari!csc.anu.oz.au!gih900@uunet.UU.NET
Received: from FALCON by WPAFB-AAMRL.ARPA; Wed, 21 Dec 88 20:57 EST
Received: from EAGLE by FALCON; Wed, 21 Dec 88 20:57 EST
Received: from uunet.UU.NET by WPAFB-AAMRL.ARPA; Wed, 21 Dec 88 20:55 EST
Received: from munnari.UUCP by uunet.UU.NET (5.59/1.14) with UUCP id AA20034;
 Wed, 21 Dec 88 20:56:21 EST
Received: from csc.anu.oz (via ccadfa) by munnari.oz with SunIII (5.5) id
 AA04336; Thu, 22 Dec 88 12:51:49 EST (from gih900@csc.anu.oz for
 uunet!vmsnet%falcon@wpafb-aamrl.arpa)
Received: by anu.anu.oz (1.2/4.7) id AA10794; Thu, 22 Dec 88 12:14:20 est
Date: Thu, 22 Dec 88 12:14:20 est
From: munnari!csc.anu.oz.au!gih900@uunet.UU.NET
Subject: Re: VMS NEWS - V5.6 Bug fix
To: vmsnet@FALCON
Message-Id: <8812220156.AA20034@uunet.UU.NET>

To all those installing VMS NEWS V5.6:

In article <1162@csc.anu.oz>, gih900@csc.anu.oz (Geoff Huston) writes:
> There is a bug in the posting code, making it impossible to post items unless
> you're the local news manager. The code fix is a change of the check_access()
> function in NEWSSETSHOW.C.

As Marc Elsen has pointed out this does not fix the problem completely.
A second change is also required, this time function nout_priv() in NEWSSITE.C.
A correct nout_priv() follows: 


/*
 *  nout_priv
 *
 *  Return 1 if the user is not authorised to post to net newsgroups
 */

nout_priv()
{
    int i = 0;

    if (post_priv != -1) return(post_priv);

        /* if neither of the POST identifiers were defined, then assume that
           the user may post anywhere  - Fix 21/12/88 */
    if (!(post_id || nopost_id)) return(post_priv = 0);

    if (no_priv) {
        while (held_ids[i]) {
            if (held_ids[i] == post_id) return(post_priv = 0);
            if (held_ids[i] = nopost_id) return(post_priv = 1);
            ++i;
            }
        if (post_id) post_priv = 1;
        else post_priv = 0;
        }

    /* remove the else from the next stmt - the return value is incorrect
       otherwise if the while loop terminates without a match - Fix 21/12/88 */
    return(post_priv = 0);
}

-- 
 Geoff Huston
 Computer Services, Australian National University

 gih900@csc.anu.oz
 psi%50526244003211::gih900
