bionic: fix assorted static analyzer warnings

Warnings:

bionic/libc/bionic/fts.c:722:5: warning: Null passed to a callee that
requires a non-null 1st parameter

bionic/libc/bionic/sched_cpualloc.c:34:25: warning: Result of 'malloc'
is converted to a pointer of type 'cpu_set_t', which is incompatible
with sizeof operand type 'unsigned long'

bionic/linker/linker_main.cpp:315:7: warning: Access to field 'e_type'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')

bionic/linker/linker_main.cpp:493:66: warning: Access to field 'e_phoff'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')

bionic/linker/linker_main.cpp:90:14: warning: Access to field 'next'
results in a dereference of a null pointer (loaded from variable 'prev')

Bug: None
Test: mma; analyzer warnings are gone. CtsBionicTestCases pass.
Change-Id: I699a60c2c6f64c50b9ea06848a680c98a8abb44a
diff --git a/libc/bionic/sched_cpualloc.c b/libc/bionic/sched_cpualloc.c
index 30964bc..345de91 100644
--- a/libc/bionic/sched_cpualloc.c
+++ b/libc/bionic/sched_cpualloc.c
@@ -31,7 +31,10 @@
 
 cpu_set_t* __sched_cpualloc(size_t count)
 {
-    return (cpu_set_t*) malloc(CPU_ALLOC_SIZE(count));
+    // The static analyzer complains that CPU_ALLOC_SIZE eventually expands to
+    // N * sizeof(unsigned long), which is incompatible with cpu_set_t. This is
+    // on purpose.
+    return (cpu_set_t*) malloc(CPU_ALLOC_SIZE(count)); // NOLINT
 }
 
 void __sched_cpufree(cpu_set_t* set)