That sort of thing happens. I think it's completely equivalent of strncpy. The request is started in the context of the thread database block and the global transaction. It wants a specific message from a specific request. That message contain the name of a security class, possibly null, the null flag for that value, and a flag that indicates that no data was found.
Null flags are short integers.
If it contains more than one row, the check and save will be done once for each record. Seems dim to me, but since relation names are unique and this is just checking an array, well, what the hell. I tend to think of the blr as the code the engine executes in parallel with the calling code. As long as they stay in sync, the engine will have a message to send when the calling code is looking for that message and vice-versa. The second assignment is the EOF flag.