No HP-UX, as bibliotecas compartilhadas são mapeadas na memória usando mmap (), e todas as páginas de memória no sistema possuem bits de proteção que são acoplados aos mecanismos de proteção de página de memória do hardware do kernel e do processador. Para executar o conteúdo de qualquer página de memória no sistema, essa página deve ter o PROT_EXEC configurado - um recurso útil para evitar explorações de execução de dados.
A chamada mmap () usa os bits de permissão no arquivo que está prestes a mapear para definir os bits de proteção das páginas de memória mapeada que devem contê-lo: rwx - > PROT_READ | PROT_WRITE | PROT_EXEC (de sys / mman.h). Portanto, para que uma biblioteca compartilhada possa ser usada no HP-UX, o arquivo que contém a biblioteca compartilhada deve ter permissões de execução para garantir que a biblioteca mapeada também tenha permissão de execução.
Uma biblioteca compartilhada com o modo 644 em um sistema HP-UX causará despejos de memória.