Переглянути джерело

in dlopen: don't use null pointer

deps can be null if a library has no dependencies (such as libc itself)
Rich Felker 13 роки тому
батько
коміт
0e4dae3d77
1 змінених файлів з 3 додано та 3 видалено
  1. 3 3
      src/ldso/dynlink.c

+ 3 - 3
src/ldso/dynlink.c

@@ -514,19 +514,19 @@ void *dlopen(const char *file, int mode)
 	/* First load handling */
 	if (!p->deps) {
 		load_deps(p);
-		for (i=0; p->deps[i]; i++)
+		if (p->deps) for (i=0; p->deps[i]; i++)
 			if (!p->deps[i]->global)
 				p->deps[i]->global = -1;
 		if (!p->global) p->global = -1;
 		reloc_all(p);
-		for (i=0; p->deps[i]; i++)
+		if (p->deps) for (i=0; p->deps[i]; i++)
 			if (p->deps[i]->global < 0)
 				p->deps[i]->global = 0;
 		if (p->global < 0) p->global = 0;
 	}
 
 	if (mode & RTLD_GLOBAL) {
-		for (i=0; p->deps[i]; i++)
+		if (p->deps) for (i=0; p->deps[i]; i++)
 			p->deps[i]->global = 1;
 		p->global = 1;
 	}