[Info-vax] Removing /identifier from rights list
Craig A. Berry
craigberry at nospam.mac.com
Thu Sep 25 18:53:10 EDT 2014
On 9/25/14, 5:03 PM, Hein RMS van den Heuvel wrote:
> Craig> Only the first record in a series contains the name, so if that record got moved to the middle or end of a section, the preceding records would be unlikely to display the correct name.
>
> Again, I don't think that's correct.
> What makes you think it works that way?
By doing:
$ edit/readonly sys$system:rightslist.dat
and noting groups of records where only the first one in the series has
a visible name:
␊APACHE$EXECUTE
␊
(the above may well get mangled in transport, but those are mostly
line-feed and nul characters).
Or if you prefer (and I know you do!):
$ dump/record=(start:42,end:43) sys$system:rightslist.dat
Dump of file SYS$COMMON:[SYSEXE]RIGHTSLIST.DAT;1 on 25-SEP-2014 17:20:18.50
File ID (21,1,0) End of file block 32 / Allocated 32
Record number 42 (0000002A), 48 (0030) bytes, RFA(000C,0000,0014)
20204554 55434558 45244548 43415041 00000000 00000000 00000000
8001000A ................APACHE$EXECUTE 000000
20202020 20202020 20202020
20202020 ................ 000020
Record number 43 (0000002B), 16 (0010) bytes, RFA(0013,0000,001E)
00000000 00800081 00000000
8001000A ................................ 000000
> If one were to DUMP the SIDR bucket for key #2 = "NAME" then yeah, you'd sort of see that thanks to repeating leading byte compression in RMS.
> Programs will never see that though.
So you're saying that "APACHE$EXECUTE" really exists on both of those
records even though I can't see it on the second one? I don't see how.
That second record is only 16 bytes long per dump/record, but key 2 (the
name field) starts at position 16.
I'm assuming these two records are a group because the first 4 bytes are
the same and that's where the identifier is stored (which is also key 0).
I'm happy to be proven wrong if I can learn something in the process,
but it sure looks to me as though the first record for a particular
identifier has all zeros for the holder (position 8, length 8) but has
the name field filled in. All subsequent records in the group (one for
each holder of the identifier) has a specific holder but no name field.
Now that I've looked at it more closely, though, it appears that sorting
the whole record would be ok because having all zeros for the holder in
the record containing the name would keep it as the first record in its
group. But sorting by holder or name would surely give you identifier salad.
More information about the Info-vax
mailing list