astfd: Fix buffer overflow in DEBUG_FD_LEAKS.
authorWalter Doekes <walter+asterisk@wjd.nu>
Thu, 2 Jul 2015 10:16:26 +0000 (12:16 +0200)
committerWalter Doekes <walter+asterisk@wjd.nu>
Thu, 2 Jul 2015 10:24:43 +0000 (05:24 -0500)
commit40274e365289ba87dde39799ee46e602128ce3ec
tree9c5609a22832d06d8aa830297e810dd74f55885c
parentc12ace3ab31bd61606252f5a3721ce720d2ad209
astfd: Fix buffer overflow in DEBUG_FD_LEAKS.

If DEBUG_FD_LEAKS was used and more file descriptors than the default of
1024 were available, some DEBUG_FD_LEAKS-patched functions would
overwrite memory past the fixed-size (1024) fdleaks buffer.

This change:
- adds bounds checks to __ast_fdleak_fopen and __ast_fdleak_pipe
- consistently uses ARRAY_LEN() instead of sizeof() or 1023 or 1024
- stores pointers to constants instead of copying the contents
- reorders the fdleaks struct for possibly tighter packing
- adds a tiny bit of documentation

ASTERISK-25212 #close

Change-Id: Iacb69e7701c0f0a113786bd946cea5b6335a85e5
main/astfd.c