Incomplete .depend.boot (BTS #534526)?

Petter Reinholdtsen pere at hungry.com
Wed Jul 22 22:22:13 UTC 2009


[Dr. Werner Fink]
> You may try the attached patch, does this solve your problem *and*
> outlive all other test cases.

Btw, the patch seem a bit strange when I have a closer look.  The deep
value is increased only when expanding a new virtual facility, but
decreased every time.  Will this lead to unexpecded behaviour?  I am
talking about this code:

        list_for_each_safe(tmp, safe, ptr) {
            repl_t * rnxt = getrepl(tmp);
            if (*rnxt->r[0].name == '$') {
                if ((*deep)++ > 10) {
                    warn("The nested level of the system facilities in the insserv.conf file(s) is to large\
n");
                    goto out;
                }
                expand_faci(tmp, head, deep);
            } else if (*deep > 0) {
                repl_t *restrict subst;
                if (posix_memalign((void*)&subst, sizeof(void*), alignof(repl_t)) != 0)
                    error("%s", strerror(errno));
                insert(&subst->r_list, head->prev);
                subst->r[0] = rnxt->r[0];
                (*subst->r[0].ref) = 1;
            }
        }
out:
        (*deep)--;
        return;

The else block should probably also increase *deep?  No idea if this
is a real problem or not.  None of the Debian test cases fail, but we
have only one testing the content of .depend.* so far.

Happy hacking,
-- 
Petter Reinholdtsen



More information about the initscripts-ng-devel mailing list