Last night after posting to openvpn-user maillist about wanting to use zlib with OpenVPN, I had a look at the code. It seems the compression code is well-contained in lzo.c, I could even do a one-to-one swap of 'LZO_COMPRESS' with zlib's 'compress' and similarly for decompress. It get compiled and linked. I was quite glad about that !!!
But of course, it is not so simple, it ran and crashed with segmentation fault. I now suspect the decompression memory allocation is not big enough. Any clues where else I should look at ?