In today’s operating systems, drivers are linked with the kernel where handling pointers and performing memory accesses must be considered with much more care than in application user space. This thesis focuses on two issues. First, memory access to user space must never be done directly, because the access may fault due to insufficient access permissions or unmapped pages. Second, pointers entering via system calls must be checked prior to their use to prevent a malevolent user from exploiting kernel drivers to access kernel space for them. The proposed solution uses the type system of Clang combined with analyzes on the generated LLVM intermediate representation, both in the purpose of performing static analyzes to produce valuable messag...