[pkg-bacula-devel] Bug#869205: Acknowledgement (bacula-sd crashes on TLS connection from bacula-fd)
Valentin Vidic
Valentin.Vidic at CARNet.hr
Fri Jul 21 15:01:28 UTC 2017
Quite strange, the error seems to happen right after the call to malloc:
(gdb) disas
Dump of assembler code for function _Z18new_tls_connectionP11TLS_Contexti:
0x00007eff913aec20 <+0>: push %r12
0x00007eff913aec22 <+2>: push %rbp
0x00007eff913aec23 <+3>: mov %rdi,%r12
0x00007eff913aec26 <+6>: push %rbx
0x00007eff913aec27 <+7>: mov %esi,%ebx
0x00007eff913aec29 <+9>: callq 0x7eff913870d0 <BIO_s_socket at plt>
0x00007eff913aec2e <+14>: mov %rax,%rdi
0x00007eff913aec31 <+17>: callq 0x7eff913861b0 <BIO_new at plt>
0x00007eff913aec36 <+22>: test %rax,%rax
0x00007eff913aec39 <+25>: je 0x7eff913aecc0 <_Z18new_tls_connectionP11TLS_Contexti+160>
0x00007eff913aec3f <+31>: mov %ebx,%ecx
0x00007eff913aec41 <+33>: xor %edx,%edx
0x00007eff913aec43 <+35>: mov $0x68,%esi
0x00007eff913aec48 <+40>: mov %rax,%rdi
0x00007eff913aec4b <+43>: mov %rax,%rbp
0x00007eff913aec4e <+46>: callq 0x7eff91387100 <BIO_int_ctrl at plt>
0x00007eff913aec53 <+51>: lea 0x143f7(%rip),%rdi # 0x7eff913c3051
0x00007eff913aec5a <+58>: mov $0x58,%edx
0x00007eff913aec5f <+63>: mov $0x1c8,%esi
0x00007eff913aec64 <+68>: callq 0x7eff913860c0 <_Z9sm_mallocPKcij at plt>
=> 0x00007eff913aec69 <+73>: mov (%r12),%rdi
0x00007eff913aec6d <+77>: mov %rax,%rbx
0x00007eff913aec70 <+80>: callq 0x7eff913869b0 <SSL_new at plt>
0x00007eff913aec75 <+85>: test %rax,%rax
0x00007eff913aec78 <+88>: mov %rax,(%rbx)
0x00007eff913aec7b <+91>: je 0x7eff913aece0 <_Z18new_tls_connectionP11TLS_Contexti+192>
0x00007eff913aec7d <+93>: mov %rax,%rdi
0x00007eff913aec80 <+96>: mov %rbp,%rdx
0x00007eff913aec83 <+99>: mov %rbp,%rsi
0x00007eff913aec86 <+102>: callq 0x7eff91387080 <SSL_set_bio at plt>
0x00007eff913aec8b <+107>: mov (%rbx),%rdi
0x00007eff913aec8e <+110>: xor %ecx,%ecx
0x00007eff913aec90 <+112>: mov $0x3,%edx
0x00007eff913aec95 <+117>: mov $0x21,%esi
TLS_CONNECTION *new_tls_connection(TLS_CONTEXT *ctx, int fd)
{
BIO *bio;
/*
* Create a new BIO and assign the fd.
* The caller will remain responsible for closing the associated fd
*/
bio = BIO_new(BIO_s_socket());
if (!bio) {
/* Not likely, but never say never */
openssl_post_errors(M_FATAL, _("Error creating file descriptor-based BIO"));
return NULL; /* Nothing allocated, nothing to clean up */
}
BIO_set_fd(bio, fd, BIO_NOCLOSE);
/* Allocate our new tls connection */
TLS_CONNECTION *tls = (TLS_CONNECTION *)malloc(sizeof(TLS_CONNECTION));
/* Create the SSL object and attach the socket BIO */
if ((tls->openssl = SSL_new(ctx->openssl)) == NULL) {
/* Not likely, but never say never */
openssl_post_errors(M_FATAL, _("Error creating new SSL object"));
goto err;
}
--
Valentin
More information about the pkg-bacula-devel
mailing list