View | Details | Raw Unified | Return to bug 149569
Collapse All | Expand All

(-)libexec/rtld-elf/rtld.c (-8 / +16 lines)
Lines 1435-1449 Link Here
1435
	Needed_Entry *needed;
1435
	Needed_Entry *needed;
1436
1436
1437
	for (needed = obj->needed;  needed != NULL;  needed = needed->next) {
1437
	for (needed = obj->needed;  needed != NULL;  needed = needed->next) {
1438
	    obj1 = needed->obj = load_object(obj->strtab + needed->name, obj,
1438
	    const char *name = obj->strtab + needed->name;
1439
		flags & ~RTLD_LO_NOLOAD);
1439
	    char *path = find_library(name, obj);
1440
	    if (obj1 == NULL && !ld_tracing)
1440
1441
	    if (path == NULL && !ld_tracing)
1441
		return -1;
1442
		return -1;
1442
	    if (obj1 != NULL && obj1->z_nodelete && !obj1->ref_nodel) {
1443
1443
		dbg("obj %s nodelete", obj1->path);
1444
	    if (path) {
1444
		init_dag(obj1);
1445
		obj1 = needed->obj = load_object(path, obj,
1445
		ref_dag(obj1);
1446
		flags & ~RTLD_LO_NOLOAD);
1446
		obj1->ref_nodel = true;
1447
		if (obj1 == NULL && !ld_tracing)
1448
		    return -1;
1449
		if (obj1 != NULL && obj1->z_nodelete && !obj1->ref_nodel) {
1450
		    dbg("obj %s nodelete", obj1->path);
1451
		    init_dag(obj1);
1452
		    ref_dag(obj1);
1453
		    obj1->ref_nodel = true;
1454
		}
1447
	    }
1455
	    }
1448
	}
1456
	}
1449
    }
1457
    }

Return to bug 149569