<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152242#M26265</link>
    <description>&lt;BR /&gt;Disclaimer... I have no hand on experience programming ACEs.&lt;BR /&gt;&lt;BR /&gt;I did have a look at the COPY listings.&lt;BR /&gt;&lt;BR /&gt;It seems they use RMS $DISPLAY in a loop until it returns SS$_NOMOREACE.&lt;BR /&gt;They provide it an XABPRO with an itemlist to decribe buffers.&lt;BR /&gt;&lt;BR /&gt;There is a good bit of code involved with ACE save masks and stuff and eventually a call to $SET_SECURITY&lt;BR /&gt;&lt;BR /&gt;fwiw,&lt;BR /&gt;Hein.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Fri, 23 Jan 2009 21:01:00 GMT</pubDate>
    <dc:creator>Hein van den Heuvel</dc:creator>
    <dc:date>2009-01-23T21:01:00Z</dc:date>
    <item>
      <title>ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152238#M26261</link>
      <description>&lt;!--!*#--&gt;Answers aren't pouring in on comp.os.vms, so&lt;BR /&gt;I'll try a different audience.&lt;BR /&gt;&lt;BR /&gt;   So, if I were to do a QIO with IO$_ACCESS&lt;BR /&gt;and ATR$C_READACL (on a disk file) to get less&lt;BR /&gt;than all of a big ACL, is there anything which&lt;BR /&gt;will tell me how many good bytes I got?&lt;BR /&gt;&lt;BR /&gt;   Background: A victim complaint has revealed&lt;BR /&gt;that "ZIP -V" doesn't do ACLs right.&lt;BR /&gt;("fib$l_aclctx?  What's fib$l_aclctx?"&lt;BR /&gt;"fib$l_acl_status?  What's fib$l_acl_status?")&lt;BR /&gt;ATR$C_ACLLENGTH gets you the real ACL size, but&lt;BR /&gt;ATR$S_READACL is only 512 (bytes), so a big ACL&lt;BR /&gt;might not fit in the "Maximum Size" buffer.&lt;BR /&gt;The docs say that ATR$C_READACL "Reads the&lt;BR /&gt;entire ACL or as much as will fit in the&lt;BR /&gt;supplied buffer.  Only complete ACEs are&lt;BR /&gt;transferred."  (And reality seems to agree.)&lt;BR /&gt;So, if the ACEs which fit are smaller than 512&lt;BR /&gt;bytes, there'll be some dead space at the end&lt;BR /&gt;of the buffer.  I can scan the buffer ACE by&lt;BR /&gt;ACE until I hit a zero byte count (or&lt;BR /&gt;end-of-buffer (512 bytes)), but if there's a&lt;BR /&gt;clever way to get the size of the ACL data&lt;BR /&gt;returned, that'd be simpler, faster, and&lt;BR /&gt;generally more elegant.  Unfortunately, if&lt;BR /&gt;there is such a way, I haven't spotted it.&lt;BR /&gt;("fib$l_acl_status" is not "fib$l_acl_iosb".)&lt;BR /&gt;Anyone have greater wisdom, or is the tedious&lt;BR /&gt;way the only way?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Some days I miss working for a company which&lt;BR /&gt;pays for actual support.</description>
      <pubDate>Fri, 23 Jan 2009 14:55:02 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152238#M26261</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-23T14:55:02Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152239#M26262</link>
      <description>I'm not inclined to go write my own $qio (re)producer here to see what's going on with the XQP ACL API.&lt;BR /&gt;&lt;BR /&gt;In isolation, I'd tend to use sys$parse_acl and sys$format_acl and less so with the XQP ACL API.  The system service API calls through to whatever widgets provide the direct API for the particular object, such as the XQP ACL API here.&lt;BR /&gt;&lt;BR /&gt;Reproducer?</description>
      <pubDate>Fri, 23 Jan 2009 16:28:39 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152239#M26262</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2009-01-23T16:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152240#M26263</link>
      <description>&lt;!--!*#--&gt;&amp;gt; Reproducer?&lt;BR /&gt;&lt;BR /&gt;If you'd settle for _looking_ at some code,&lt;BR /&gt;the old stuff can be found in any Zip source&lt;BR /&gt;kit, [.vms]vms_pk.c.  Look for "acl".  My&lt;BR /&gt;latest is at:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="ftp://antinode.info/info-zip/zip31a02/vms/vms_pk.c" target="_blank"&gt;ftp://antinode.info/info-zip/zip31a02/vms/vms_pk.c&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://antinode.info/ftp/info-zip/zip31a02/vms/vms_pk.c" target="_blank"&gt;http://antinode.info/ftp/info-zip/zip31a02/vms/vms_pk.c&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;I could probably assemble something more&lt;BR /&gt;free-standing if you twist my arm.&lt;BR /&gt;&lt;BR /&gt;&amp;gt; I'd tend to use sys$parse_acl and&lt;BR /&gt;&amp;gt; sys$format_acl and less so with the XQP ACL&lt;BR /&gt;&amp;gt; API.&lt;BR /&gt;&lt;BR /&gt;No one really wants to look at the data.&lt;BR /&gt;The idea is to package up some (low-level,&lt;BR /&gt;ATR$C_ADDACLENT) stuff which UnZip can use&lt;BR /&gt;directly to set the attributes again at the&lt;BR /&gt;far end.  It actually works well enough (if&lt;BR /&gt;you do things right).  The new code clears&lt;BR /&gt;that ACL context thing in the FIB for each&lt;BR /&gt;new file, which solves the big problem in the&lt;BR /&gt;old code.&lt;BR /&gt;&lt;BR /&gt;The problem which no one is likely to hit is&lt;BR /&gt;the big-ACL problem, so I figured while I was&lt;BR /&gt;in the neighborhood, I'd try to obviate some&lt;BR /&gt;future whining.&lt;BR /&gt;&lt;BR /&gt;The code I'd like to expunge includes this&lt;BR /&gt;bit, which uses the ACE byte count from the&lt;BR /&gt;first byte of each ACE to locate the next&lt;BR /&gt;ACE, and so on, until it finds the end of&lt;BR /&gt;the good data in the ACL buffer.  If the QIO&lt;BR /&gt;returned the good-data byte count somewhere,&lt;BR /&gt;I could avoid doing this:&lt;BR /&gt;&lt;BR /&gt;                /* Expecting multiple reads.  Advance through valid data. */&lt;BR /&gt;                while ((ace_bytes = *acl_buf) != 0)&lt;BR /&gt;                {&lt;BR /&gt;                    acl_bytes_read += ace_bytes;&lt;BR /&gt;                    acl_buf += ace_bytes;&lt;BR /&gt;                }&lt;BR /&gt;</description>
      <pubDate>Fri, 23 Jan 2009 16:59:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152240#M26263</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-23T16:59:11Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152241#M26264</link>
      <description>&lt;!--!*#--&gt;Sloppy, but functional:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="ftp://antinode.info/info-zip/raclx.zip" target="_blank"&gt;ftp://antinode.info/info-zip/raclx.zip&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://antinode.info/ftp/info-zip/raclx.zip" target="_blank"&gt;http://antinode.info/ftp/info-zip/raclx.zip&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;unzip -X raclx.zip    ! (UnZip works right.)&lt;BR /&gt;cc raclx&lt;BR /&gt;link raclx&lt;BR /&gt;raclx :== $ sys$disk:[]raclx.exe&lt;BR /&gt;raclx &lt;FILE_NAME&gt;&lt;BR /&gt;&lt;BR /&gt;The mystery is how to get "504" out of the&lt;BR /&gt;first ATR$C_READACL QIO on the BIG_ACL.TXT&lt;BR /&gt;file (without having to scan the buffer, and&lt;BR /&gt;accumulate the ACE byte counts, as it does&lt;BR /&gt;now).&lt;/FILE_NAME&gt;</description>
      <pubDate>Fri, 23 Jan 2009 18:43:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152241#M26264</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-23T18:43:12Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152242#M26265</link>
      <description>&lt;BR /&gt;Disclaimer... I have no hand on experience programming ACEs.&lt;BR /&gt;&lt;BR /&gt;I did have a look at the COPY listings.&lt;BR /&gt;&lt;BR /&gt;It seems they use RMS $DISPLAY in a loop until it returns SS$_NOMOREACE.&lt;BR /&gt;They provide it an XABPRO with an itemlist to decribe buffers.&lt;BR /&gt;&lt;BR /&gt;There is a good bit of code involved with ACE save masks and stuff and eventually a call to $SET_SECURITY&lt;BR /&gt;&lt;BR /&gt;fwiw,&lt;BR /&gt;Hein.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 23 Jan 2009 21:01:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152242#M26265</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2009-01-23T21:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152243#M26266</link>
      <description>It seems to me you have to code up the iterative readace method anyway for the case where the whole ACL won't fit in a 512 byte buffer, so just throw away the whole atr$c_readacl buffer if atr$c_acllength indicates an overflow.&lt;BR /&gt;&lt;BR /&gt;Ideally, I'd like to see the corresponding text identifiers preserved for all the IDs referenced in the saved ACLS.</description>
      <pubDate>Fri, 23 Jan 2009 22:06:03 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152243#M26266</guid>
      <dc:creator>David Jones_21</dc:creator>
      <dc:date>2009-01-23T22:06:03Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152244#M26267</link>
      <description>&lt;!--!*#--&gt;&amp;gt; It seems to me [...] throw away the whole&lt;BR /&gt;&amp;gt; atr$c_readacl buffer if atr$c_acllength&lt;BR /&gt;&amp;gt; indicates an overflow.&lt;BR /&gt;&lt;BR /&gt;In fact, you can loop with ATR$C_READACL,&lt;BR /&gt;which lets you do (typically) many fewer&lt;BR /&gt;QIOs than if you loop with ATR$C_READACE.&lt;BR /&gt;The ACL context thing in the FIB climbs&lt;BR /&gt;faster, and all is well.  It's just not so&lt;BR /&gt;easy as I'd like/expect, to figure out how&lt;BR /&gt;many good bytes are in the buffer.&lt;BR /&gt;&lt;BR /&gt;Other than not clearing the context for each&lt;BR /&gt;file, the old Zip code just does a single&lt;BR /&gt;ATR$C_READACL, and hopes for the best.  I was&lt;BR /&gt;expecting to need to use ATR$C_READACE, but a&lt;BR /&gt;ATR$C_READACL loop (with fewer QIOs) seemed&lt;BR /&gt;more attractive (except for the one&lt;BR /&gt;annoyance).  (It even seems to work back on&lt;BR /&gt;VMS V5.5-2.)</description>
      <pubDate>Sat, 24 Jan 2009 00:01:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152244#M26267</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-24T00:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152245#M26268</link>
      <description>Steven,&lt;BR /&gt;&lt;BR /&gt;you are already using a very low-level interface within OpenVMS. If the documentation does not answer your question or curiousity, then there is only one ultimate resource: the OpenVMS source listings.&lt;BR /&gt;&lt;BR /&gt;My interpretation of the source code is this:&lt;BR /&gt;&lt;BR /&gt;In case of a ATR$C_READACL request, the XQP fills the user buffer by calls to EXE$ACL_READ_ACL in [SYS]SYSACLSUB. This call interface does not return the no. of bytes copied to the user buffer.&lt;BR /&gt;&lt;BR /&gt;Volker.</description>
      <pubDate>Sat, 24 Jan 2009 10:38:24 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152245#M26268</guid>
      <dc:creator>Volker Halle</dc:creator>
      <dc:date>2009-01-24T10:38:24Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152246#M26269</link>
      <description>&amp;gt; [...] This call interface does not return&lt;BR /&gt;&amp;gt; the no. of bytes copied to the user buffer.&lt;BR /&gt;&lt;BR /&gt;Yeah.  If you're reading one ACE, the size is&lt;BR /&gt;in the first byte.  The guy who does the loop&lt;BR /&gt;(the XQP?) is the guy who should be&lt;BR /&gt;accumulating the sizes.&lt;BR /&gt;&lt;BR /&gt;As I said, I can live with my current code&lt;BR /&gt;which scans the buffer.  It would have been&lt;BR /&gt;more elegant if someone else (who had better&lt;BR /&gt;info) were doing it for me, though, so I&lt;BR /&gt;figured that is was worth an inquiry.&lt;BR /&gt;&lt;BR /&gt;The ACL fix for Zip should appear in version&lt;BR /&gt;3.1.  If anyone would like a retro-fix for&lt;BR /&gt;3.0, let me know.</description>
      <pubDate>Sun, 25 Jan 2009 06:37:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152246#M26269</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-25T06:37:44Z</dc:date>
    </item>
    <item>
      <title>Re: ACL-reading mystery -- Big ACL v. ATR$S_READACL</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152247#M26270</link>
      <description>.</description>
      <pubDate>Thu, 29 Jan 2009 21:28:24 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/acl-reading-mystery-big-acl-v-atr-s-readacl/m-p/5152247#M26270</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-01-29T21:28:24Z</dc:date>
    </item>
  </channel>
</rss>

