Seu erro é um pouco bizarro. Para investigar mais, talvez você queira instalar o gdb
e o pacote debuginfo para o seu comando crontab, para que possamos ver o que ele está tentando fazer. Meu comando crontab
faz parte do pacote cronie
, como achei:
$ rpm -qf $(command -v crontab)
cronie-1.4.12-5.fc22.x86_64
Você pode instalar o pacote debuginfo para ele com dnf
:
$ sudo dnf --enablerepo='*-debuginfo' install cronie-debuginfo
Agora você pode executar o comando sob gdb e ter acesso aos nomes de função usados no código C. Eu encontrei sua mensagem de erro ocorre quando glue_strings()
é chamado, então defina um ponto de interrupção lá. Como crontab
é normalmente setuid root, você precisa ser root para executar o gdb. (A seguir, (gdb)
é impresso por gdb como um prompt).
# gdb crontab
(gdb) break glue_strings
Inicie o programa com run
seguido pelos argumentos para crontab
:
(gdb) run -e
Você deve ver um dump dos parâmetros passados para glue_strings()
quando foi chamado.
Breakpoint 1, glue_strings (buffer=0x7ffdaa552740 "", buffer_size=4096,
a=0x55c50950e567 "/var/spool/cron", b=0x55c5097154c0 <User> "meuh",
separator=47 '/') at misc.c:110
110 if (buffer_size <= 0)
Digite o comando c
para continuar. Pode haver várias chamadas. O último antes do final do programa é o mais interessante. Adicione esta saída ao seu post original para diagnóstico adicional.
Os comandos acima para obter o debuginfo são para o Fedora. Para o Red Hat 7.1, consulte este artigo que parece estar dizendo listar os canais com
subscription-manager repos --list | grep -i debug
e habilite o que você quer, por exemplo
subscription-manager repos --enable=rhel-rs-for-rhel-7-server-fastrack-debug-rpms