Yup, I'm sure you are right. Lying to the binder didn't (obviously) matter when the program object was in a non-APF-authorized library, but it did matter when it was in an authorized library for the reasons discussed below.
In any event, lying to the binder is a terrible practice, and I'll correct this by (probably) telling the compiler to emit reentrant code - or by telling the binder it's not reentrant after all. Rich Way -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Dan Little Sent: Friday, June 09, 2017 1:27 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: APF authorization and AC(00) I think you need RENT on your PL/1 compile because otherwise there is no guaranteed the generated code will be re-entrant. General rule is if RENT on bind/LinkedIn then you must have RENT on high level language compile. Dan On Jun 9, 2017, 16:26 -0400, Leonardo Vaz <leonardo....@cn.ca>, wrote: > Ow, I missed the source, sorry. > > Ok, so I believe a program loaded from an authorized library, even if it's > not AC=1, will be loaded by contents supervisor with KEY=0 if it's reentrant, > but with KEY=8 if it's non-reentrant, so that's why you got the S0C4 > originally. > > Regards, > Leo > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Way, Richard > Sent: Friday, June 09, 2017 4:24 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: APF authorization and AC(00) > > Problem solved, per the suggestions below!! > > In particular, the program is apparently NOT reentrant, yet the binder was > being told it was. > > For some reason, this doesn't seem to matter (in this case) when the library > isn't APF-autorized, yet results in a S0C4 when it is. > > That part is still a bit of a puzzle. > > But removing RENT from the bind step gets me past this. > > Thanks again > > Rich Wa > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Way, Richard > Sent: Friday, June 09, 2017 1:18 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: APF authorization and AC(00) > > The source code is actually below - it's just a "hello world". But agreed I > need to dig into the S0C4. The APF issue wasn't the result of an attempt to > debug it, but was the ONLY difference between the version that worked and the > version that didn't - and I confirmed that by revoking and reinstating APF > auth on the library. > > Rich Way > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Leonardo Vaz > Sent: Friday, June 09, 2017 1:16 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: APF authorization and AC(00) > > Right, without the source code we can only guess, but the program might be > issuing a CSVQUERY to verify its state and relying on ",OUTATTR2=" > "Authorized library" bit to try and do something it wouldn't do if that bit > was off, maybe they forgot to check the "Authorized program" bit as well. > > That is, considering the only variable is the library being APF'd or not. > > Regards, > Leo > > > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Way, Richard > Sent: Friday, June 09, 2017 4:03 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: APF authorization and AC(00) > > Thanks, but it's a simple > > //XYZ EXEC PGM=ZPXPLIA > > So, yeah, it's a jobstep task. And while I can see how NOT having > authorization might cause a problem (specifically, an S047), I don't see why > *having* authorization would cause a problem... > > Rich Way > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Leonardo Vaz > Sent: Friday, June 09, 2017 12:59 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: APF authorization and AC(00) > > As far as I understand, AC=0 would only prevent authorization of the JSCB if > it is the program being attached as a jobstep task, if this program is being > called by an already-existing authorized task, it would run authorized. > > The question is: How is control passed to program ZPXPLIA? > > Regards, > Leo > > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Way, Richard > Sent: Friday, June 09, 2017 3:49 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: APF authorization and AC(00) > > Simple question, but the behavior I am seeing flies in the face of what I > *thought* I knew about APF authorization. > > The crux of it is - I have a program object that is linked AC(00). When this > program is executed out of an APF-authorized library, it S0C4s. When I revoke > the authorization on the library and re-run the test, it works. > > I had been under the (maybe-mistaken) impression that if you didn't have > *both* AC(1) *and* be running out of an APF-authed library, you wouldn't get > APF authorization - so I thought that the AC(00) version should work just > fine out of the APF-authorized library - but it doesn't. > > Any help would be appreciated. > > Additional facts: program is PL/I (LE), chopped the source way back to just > this: > > ZPXPLIA: > > Proc Options(Main); > Put skip list("Hello, world!"); > > end ZPXPLIA; > > The compile and bind are done with: > > <snip > //PLI EXEC PGM=IBMZPLI,REGION=0K,TIME=999, // > PARM=('MAP,LC(80),NEST,S',SYSTEM(MVS), > // 'LIST,AG,A,X,C') > //**** MAP = print info from compile for use when reading dumps. > //**** LC(80) = LINECOUNT(80) = number of lines per page on listing. > //**** NEST = listing indicates nest level and block level. > //**** S = SOURCE = print the source on the compiler listing. > //**** SYSTEM(MVS) = this is an ordinary batch program. > //**** LIST = product the pseudo-assembler listing. > //**** AG = AGGREGATE = produce a table of sizes of items in the listing. > //**** A = ATTRIBUTES = produce a table of attributes in the listing. > //**** X = XREF = create a cross-reference in the listing. > //**** C = COMPILE = generate code unless there is a severe error. > //SYSIN DD DISP=SHR,DSN=&SAMPLIB..SAMPLIB(ZPXPLIA) > <snip > //LKED EXEC PGM=IEWBLINK,COND=(4,LT), > // PARM='LIST,MAP,LET,RENT' > //SYSPRINT DD SYSOUT=* > //SYSLIB DD DISP=SHR,DSN=&LECEEHLQ..SCEELKED //SYSLMOD DD > DISP=SHR,DSN=&LOAD > //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,1)) //TEMP DD > DISP=(OLD,DELETE),DSN=&&TEMP //SYSLIN DD * INCLUDE TEMP NAME > ZPXPLIA(R) > /* > <snip > > Thanks in advance- I am sure I must be misunderstanding something... > > Rich Way > HPE Security - Data Security > HPE Software | Enterprise Security Products > 1140 Enterprise Way, Mail Stop 3048 > Sunnyvale, CA 94089 > > [HPE logo]<http://www.hpe.com/ > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN