SUSv3 doesn't seem to specify one way or the other. I don't have theDid you test what other unices do? I think the patch is correct - at least solaris implements message queues in user space, and then an exec should close everything.
POSIX specs, and the old docs I have suggest that mq_open() creates an
object which is to be closed upon exec. Anyone have a clue if this is
actually required? Patch below sets this as default (if indeed it's
valid/required).