Robustify mpers.awk against invalid input

Make mpers.awk check that accessed elements of the main array that
are expected to have non-empty values really meet this requirement.

* mpers.awk (array_get): New function.
(what_is, END): Use it.
* mpers_test.sh: Use a more complicated type to test mpers machinery.

Reported-by: Mike Frysinger <vapier@gentoo.org>
2 files changed
tree: f9cb438c84150d114773d944ae626245e209b04a
  1. debian/
  2. linux/
  3. m4/
  4. maint/
  5. qemu_multiarch_testing/
  6. test/
  7. tests/
  8. xlat/
  9. .gitignore
  10. .mailmap
  11. .travis.yml
  12. access.c
  13. affinity.c
  14. aio.c
  15. AUTHORS
  16. bjm.c
  17. block.c
  18. bootstrap
  19. bpf.c
  20. build_static_example.sh
  21. cacheflush.c
  22. capability.c
  23. caps0.h
  24. caps1.h
  25. ChangeLog-CVS
  26. chdir.c
  27. chmod.c
  28. clone.c
  29. configure.ac
  30. COPYING
  31. count.c
  32. CREDITS.in
  33. defs.h
  34. desc.c
  35. dirent.c
  36. dirent64.c
  37. empty.h
  38. epoll.c
  39. errnoent.sh
  40. evdev.c
  41. eventfd.c
  42. execve.c
  43. exit.c
  44. fadvise.c
  45. fallocate.c
  46. fanotify.c
  47. fchownat.c
  48. fcntl.c
  49. fetch_seccomp_fprog.c
  50. fetch_struct_flock.c
  51. file.c
  52. file_handle.c
  53. flock.c
  54. flock.h
  55. futex.c
  56. generate_mpers_am.sh
  57. generate_sen.sh
  58. generate_xlat_in.sh
  59. get_robust_list.c
  60. getcpu.c
  61. getcwd.c
  62. getrandom.c
  63. git-set-file-times
  64. git-version-gen
  65. gitlog-to-changelog
  66. HACKING-scripts
  67. hostname.c
  68. inotify.c
  69. INSTALL
  70. io.c
  71. ioctl.c
  72. ioctlsort.c
  73. ioperm.c
  74. iopl.c
  75. ioprio.c
  76. ipc_defs.h
  77. ipc_msg.c
  78. ipc_msgctl.c
  79. ipc_sem.c
  80. ipc_shm.c
  81. ipc_shmctl.c
  82. kcmp.c
  83. kernel_types.h
  84. kexec.c
  85. keyctl.c
  86. ldt.c
  87. link.c
  88. lookup_dcookie.c
  89. loop.c
  90. lseek.c
  91. make-dist
  92. Makefile.am
  93. mem.c
  94. membarrier.c
  95. memfd_create.c
  96. mknod.c
  97. mount.c
  98. mpers.awk
  99. mpers.sh
  100. mpers_test.sh
  101. mpers_type.h
  102. mq.c
  103. mtd.c
  104. native_defs.h
  105. net.c
  106. NEWS
  107. open.c
  108. or1k_atomic.c
  109. pathtrace.c
  110. perf.c
  111. personality.c
  112. poll.c
  113. prctl.c
  114. print_mq_attr.c
  115. print_msgbuf.c
  116. print_sigevent.c
  117. print_time.c
  118. print_timex.c
  119. printmode.c
  120. printrusage.c
  121. printsiginfo.c
  122. printsiginfo.h
  123. printstat.h
  124. process.c
  125. process_vm.c
  126. ptp.c
  127. ptrace.h
  128. quota.c
  129. readahead.c
  130. readlink.c
  131. README
  132. README-hacking
  133. README-linux-ptrace
  134. README-mpers
  135. reboot.c
  136. regs.h
  137. renameat.c
  138. resource.c
  139. rtc.c
  140. sched.c
  141. scsi.c
  142. seccomp.c
  143. seccomp_fprog.h
  144. sendfile.c
  145. sigaltstack.c
  146. signal.c
  147. signalent.sh
  148. signalfd.c
  149. sigreturn.c
  150. sock.c
  151. socketutils.c
  152. sram_alloc.c
  153. statfs.c
  154. strace-graph
  155. strace-log-merge
  156. strace.1
  157. strace.c
  158. strace.spec
  159. swapon.c
  160. sync_file_range.c
  161. syscall.c
  162. syscallent.sh
  163. sysctl.c
  164. sysinfo.c
  165. syslog.c
  166. sysmips.c
  167. term.c
  168. time.c
  169. times.c
  170. travis-ci.sh
  171. truncate.c
  172. uid.c
  173. uid16.c
  174. umask.c
  175. umount.c
  176. uname.c
  177. unwind.c
  178. userfaultfd.c
  179. util.c
  180. utime.c
  181. utimes.c
  182. v4l2.c
  183. vsprintf.c
  184. wait.c
  185. xattr.c
  186. xlate.el
  187. xmalloc.c