[server] fix crash if replay digest tracking init() fails
authorMichael Rash <mbr@cipherdyne.org>
Mon, 19 Aug 2013 02:15:15 +0000 (22:15 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Mon, 19 Aug 2013 02:19:41 +0000 (22:19 -0400)
commita68503c7c9d7e01c3a0dcad1eae09032ca3ce62d
tree692ddacfa0760fb845cf3da9c756cabd77ea17c9
parent5d49f30c01d42de961071f2d2918431fe9518b09
[server] fix crash if replay digest tracking init() fails

This commit fixes a crash if the replay digest init() routine fails - fwknopd
attempted to make use of replay tracking anyway.  The crash was discovered
during testing fwknopd with an AppArmor enforce policy deployed.  The
following stack trace shows the crash (taken before the previous static
function commit):

 Program received signal SIGSEGV, Segmentation fault.
 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:31
 31      ../sysdeps/x86_64/multiarch/../strlen.S: No such file or directory.
 (gdb) where
 #0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:31
 #1  0x00007f59cabd8b26 in add_replay_file_cache (opts=opts@entry=0x7fff3eaa0bb0, digest=digest@entry=0x0) at replay_cache.c:516
 #2  0x00007f59cabd8cf5 in add_replay (opts=opts@entry=0x7fff3eaa0bb0, digest=digest@entry=0x0) at replay_cache.c:472
 #3  0x00007f59cabd62eb in incoming_spa (opts=0x7fff3eaa0bb0) at incoming_spa.c:536
 #4  0x00007f59ca56164e in ?? () from /usr/lib/x86_64-linux-gnu/libpcap.so.0.8
 #5  0x00007f59cabd7175 in pcap_capture (opts=opts@entry=0x7fff3eaa0bb0) at pcap_capture.c:269
 #6  0x00007f59cabd3d4d in main (argc=5, argv=0x7fff3eaa1458) at fwknopd.c:314
server/incoming_spa.c
server/replay_cache.c