Thanks Brian, this was really helpful!

This stack trace pinpoints the particular strncpy() call in
do_interface:

                       if (current_state != NULL) {
                                strncpy(liface, current_state, 80);

liface is correct ("lo"), but current_state is bogus (0x1). We see that
lock_interface() failed as lock == NULL, but lock isn't being tested
after calling lock_interface(). Hence "current_state" never actually
gets initialized. The obvious exit path in lock_interface() is

        if (lock_fp == NULL) {
                if (!no_act) {
                        fprintf(stderr, "%s: failed to open lockfile %s: %s\n", 
argv0, filename, strerror(errno));
                        exit(1);
                } else {
                        return NULL;
                }
        }

i. e. this happens if the interface is locked.

For the record, I set bug 1337873 to failed, which is the SRU tracking
bug for landing the per-interface locking into stables.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1532722

Title:
  /sbin/ifup:11:__GI_strncpy:strncpy:do_interface:main

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1532722/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to