On 07/17/2017 04:59 PM, Greg Hudson wrote:
> (Sent unicast.)
> 
> Hm, our mailing list software seems to have removed all of the content
> from both of your messages, due to some incompatibility with the way
> they were formatted.  Would it be possible to combine them and resend
> them as plain text?  Unfortunately I no longer have a copy of the
> contents after moderating them through.
>

Sure, no problem, here they are. Let me know if there are still issues with 
getting my content. I sent this one in plaintext:
 

I ran the kdb5_util program under valgrind as well and saw this, thought I'd 
pass it along:

    root@bllkrb501:~# valgrind kdb5_util stash -f /etc/krb5kdc/stash
    ==16389== Memcheck, a memory error detector
    ==16389== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
    ==16389== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
    ==16389== Command: kdb5_util stash -f /etc/krb5kdc/stash
    ==16389==
    stat(/usr/local/lib/krb5/plugins/kdb/kldap): No such file or directory
    get_plugin_data_sym(kdb_function_table)
    ==16389== Warning: invalid file descriptor -1 in syscall write()
    kdb5_util: Cannot find master key record in database while getting master 
key list
    kdb5_util: Warning: proceeding without master key list
    Enter KDC database master key:
    ==16389== Invalid read of size 2
    ==16389==    at 0x506DFA8: krb5_db_fetch_mkey (kdb5.c:1224)
    ==16389==    by 0x406D56: kdb5_stash (kdb5_stash.c:110)
    ==16389==    by 0x4048F1: main (kdb5_util.c:346)
    ==16389==  Address 0x2 is not stack'd, malloc'd or (recently) free'd
    ==16389==
    ==16389==
    ==16389== Process terminating with default action of signal 11 (SIGSEGV)
    [...]

NULL pointer?

On 07/17/2017 03:35 PM, Joshua Schaeffer wrote:
> TL;DR
> I'm getting a segmentation error when I run kdb5_util stash from a compiled 
> version of 1.15.1:
>
>     Program received signal SIGSEGV, Segmentation fault.
>         0x00007ffff799afa8 in krb5_db_fetch_mkey (context=0x61eb80, 
> mname=0x678a60, etype=18, fromkeyboard=1, twice=0,
>             db_args=0x0, kvno=0x7fffffffe56c, salt=0x0, key=0x619c30 
> <master_keyblock>) at kdb5.c:1224
>         1224                    *kvno = (krb5_kvno) 
> master_entry->key_data->key_data_kvno;
>
> --------------------------------------------------------
>
> Hey all,
>
> I'm trying to figure out why I'm getting a segmentation fault when I try to 
> start the krb5-admin-server service. I have a server running in an LXD 
> container, which I think is causing the issue, but I'm not sure what the 
> container doesn't have permissions/rights to that is causing this problem and 
> I've searched all my log files far and wide and can't find any smoking gun. 
> So here is what I've done:
>
> First I tried installing MIT Kerberos using the package management system 
> which installs version 1.13.2. Then I setup my krb5.conf file and initialize 
> my database:
>
>     kdb5_ldap_util -D cn=admin,dc=appendata,dc=net create -subtrees 'ou=End 
> Users,ou=People,dc=appendata,dc=net':'ou=Other 
> Users,ou=People,dc=appendata,dc=net -r APPENDATA.NET -s -H 
> ldaps://bllldap01.appendata.net
>
> This works without issue, so I proceed by stashing a few ldap user's 
> passwords, create my kadm5.acl file and then I go and try to start kadmind:
>
>     root@bllkrb501:~# systemctl start krb5-admin-server
>     root@bllkrb501:~# systemctl status krb5-admin-server
>      krb5-admin-server.service - Kerberos 5 Admin Server
>        Loaded: loaded (/lib/systemd/system/krb5-admin-server.service; 
> enabled; vendor preset: enabled)
>       Drop-In: /lib/systemd/system/krb5-admin-server.service.d
>                └─slapd-before-kdc.conf
>        Active: failed (Result: core-dump) since Mon 2017-07-17 15:00:36 MDT; 
> 6s ago
>       Process: 3304 ExecStart=/usr/sbin/kadmind -nofork $DAEMON_ARGS 
> (code=dumped, signal=SEGV)
>      Main PID: 3304 (code=dumped, signal=SEGV)
>
>     Jul 17 15:00:35 bllkrb501 systemd[1]: Started Kerberos 5 Admin Server.
>     Jul 17 15:00:36 bllkrb501 systemd[1]: krb5-admin-server.service: Main 
> process exited, code=dumped, status=11/SEGV
>     Jul 17 15:00:36 bllkrb501 systemd[1]: krb5-admin-server.service: Unit 
> entered failed state.
>     Jul 17 15:00:36 bllkrb501 systemd[1]: krb5-admin-server.service: Failed 
> with result 'core-dump'.
>
> And if I try to start kadmind manually:
>
>     root@bllkrb501:~# kadmind -nofork
>     Segmentation fault (core dumped)
>
> Here is an strace of the same command:
>
>     [...]
>     write(11, 
> "\27\3\3\2Y\0\0\0\0\0\0\0\3ZMi\3049\2256\337\17y}\361\237\4Kv\f\347\233"..., 
> 606) = 606
>     poll([{fd=11, events=POLLIN|POLLPRI}], 1, 300000) = 1 ([{fd=11, 
> revents=POLLIN}])
>     read(11, "\27\3\3\0&", 5)               = 5
>     read(11, 
> "\0\0\0\0\0\0\0\4\313(H\177\362\376\4\34\251\266T\23\5\ndj\327\311\304\30\177\31\26b"...,
>  38) = 38
>     write(11, 
> "\27\3\3\2[\0\0\0\0\0\0\0\4\244G3\341}F\35:\340\244\356\250\254T\365g\7\240r"...,
>  608) = 608
>     poll([{fd=11, events=POLLIN|POLLPRI}], 1, 300000) = 1 ([{fd=11, 
> revents=POLLIN}])
>     read(11, "\27\3\3\0&", 5)               = 5
>     read(11, 
> "\0\0\0\0\0\0\0\5\4\204S\v9\305v\217\324\r\316\313\207\2405\245\2749\242\356\341\361h\367"...,
>  38) = 38
>     write(11, 
> "\27\3\3\2g\0\0\0\0\0\0\0\5\34\306\243F\177zh\370s\352\230\206\243\215\345\3719\\_"...,
>  620) = 620
>     poll([{fd=11, events=POLLIN|POLLPRI}], 1, 300000) = 1 ([{fd=11, 
> revents=POLLIN}])
>     read(11, "\27\3\3\2\27", 5)             = 5
>     read(11, 
> "\0\0\0\0\0\0\0\6\f\332:\226l\34J\0\344v\304K\203\242\0\356[X~\225\347\253\37P"...,
>  535) = 535
>     poll([{fd=11, events=POLLIN|POLLPRI}], 1, 299999) = 1 ([{fd=11, 
> revents=POLLIN}])
>     read(11, "\27\3\3\0&", 5)               = 5
>     read(11, 
> "\0\0\0\0\0\0\0\7v\215\202\33\312\325\316xL4&\305i^\310\21,X\226\211\357\317\323\354"...,
>  38) = 38
>     open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 23
>     fstat(23, {st_mode=S_IFREG|0644, st_size=2453, ...}) = 0
>     fstat(23, {st_mode=S_IFREG|0644, st_size=2453, ...}) = 0
>     read(23, 
> "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 2560) = 2453
>     lseek(23, -1559, SEEK_CUR)              = 894
>     read(23, 
> "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 2560) = 1559
>     close(23)                               = 0
>     --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} ---
>     +++ killed by SIGSEGV (core dumped) +++
>     Segmentation fault (core dumped)
>
> I wasn't able to determine too much from this. To me it looks like the system 
> is opening /etc/localtime and then the program crashes. Next I resorted to 
> debugging the error and that is where I'm currently at. I downloaded the 
> source code for 1.15.1, installed it, and reran through all my steps. I 
> wasn't able to get to my step of trying to start kadmind, because it 
> complains the stash file doesn't exist for the master key, which it doesn't, 
> and I'm not sure why it isn't created when I issued my krb5_ldap_util command 
> above, but I was able to still get a segmentation fault when I try to create 
> the stash file:
>
>     root@bllkrb501:~# kdb5_util stash
>     stat(/usr/local/lib/krb5/plugins/kdb/kldap): No such file or directory
>     get_plugin_data_sym(kdb_function_table)
>     kdb5_util: Cannot find master key record in database while getting master 
> key list
>     kdb5_util: Warning: proceeding without master key list
>     Enter KDC database master key:
>     Segmentation fault (core dumped)
>
>     root@bllkrb501:~# ls -l /usr/local/lib/krb5/plugins/kdb/
>     total 407
>     -rw-r--r-- 1 root root 366680 Jul 17 12:51 db2.so
>     -rw-r--r-- 1 root root  21008 Jul 17 12:51 kldap.so
>
> I'm not sure why it is complaining about plugins/kdb/kldap not existing 
> either. The shared object exists under that directory. Perhaps this is the 
> problem. I compiled Kerberos with "--with-ldap". I've also run the same 
> command through gdb and got the line it is failing at:
>
>     root@bllkrb501:~# gdb kdb5_util
>     [...]
>     Reading symbols from kdb5_util...done.
>     (gdb) run stash -f /etc/krb5kdc/stash
>     Starting program: /usr/local/sbin/kdb5_util stash -f /etc/krb5kdc/stash
>     [Thread debugging using libthread_db enabled]
>     Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>     stat(/usr/local/lib/krb5/plugins/kdb/kldap): No such file or directory
>     get_plugin_data_sym(kdb_function_table)
>     kdb5_util: Cannot find master key record in database while getting master 
> key list
>     kdb5_util: Warning: proceeding without master key list
>     Enter KDC database master key:
>
>     Program received signal SIGSEGV, Segmentation fault.
>     0x00007ffff799afa8 in krb5_db_fetch_mkey (context=0x61eb80, 
> mname=0x678a60, etype=18, fromkeyboard=1, twice=0,
>         db_args=0x0, kvno=0x7fffffffe56c, salt=0x0, key=0x619c30 
> <master_keyblock>) at kdb5.c:1224
>     1224                    *kvno = (krb5_kvno) 
> master_entry->key_data->key_data_kvno;
>     (gdb) continue
>     Continuing.
>
>     Program terminated with signal SIGSEGV, Segmentation fault.
>     The program no longer exists.
>     (gdb) quit
>
> I looked at the code and this is where it is actually failing:
>
>     1218    if (kvno != NULL && *kvno == IGNORE_VNO) {
>     1219            krb5_error_code rc;
>     1220            krb5_db_entry *master_entry;
>
>     1222            rc = krb5_db_get_principal(context, mname, 0, 
> &master_entry);
>     1223            if (rc == 0) {
>     1224                *kvno = (krb5_kvno) 
> master_entry->key_data->key_data_kvno;
>     1225                krb5_db_free_principal(context, master_entry);
>     1226            } else
>     1227                *kvno = 1;
>     1228        }
>
> I don't really know where to go from here. I don't know this code well enough 
> to figure out why the segmentation error is occurring. Can anybody help me 
> out? If you need additional information, I'd be happy to provide.
>
> Thanks,
> Joshua Schaeffer
________________________________________________
Kerberos mailing list           Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos

Reply via email to