--- src/openvpn/comp.c | 6 +++--- src/openvpn/options.c | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/openvpn/comp.c b/src/openvpn/comp.c index b420ea5..3a32c62 100644 --- a/src/openvpn/comp.c +++ b/src/openvpn/comp.c @@ -48,7 +48,6 @@ comp_init(const struct compress_options *opt) ALLOC_OBJ_CLEAR (compctx, struct compress_context); compctx->flags = opt->flags; compctx->alg = comp_stub_alg; - (*compctx->alg.compress_init)(compctx); break; case COMP_ALGV2_UNCOMPRESSED: ALLOC_OBJ_CLEAR (compctx, struct compress_context); @@ -60,7 +59,6 @@ comp_init(const struct compress_options *opt) ALLOC_OBJ_CLEAR (compctx, struct compress_context); compctx->flags = opt->flags; compctx->alg = lzo_alg; - (*compctx->alg.compress_init)(compctx); break; #endif #ifdef ENABLE_LZ4 @@ -68,7 +66,6 @@ comp_init(const struct compress_options *opt) ALLOC_OBJ_CLEAR (compctx, struct compress_context); compctx->flags = opt->flags; compctx->alg = lz4_alg; - (*compctx->alg.compress_init)(compctx); break; case COMP_ALGV2_LZ4: ALLOC_OBJ_CLEAR (compctx, struct compress_context); @@ -77,6 +74,9 @@ comp_init(const struct compress_options *opt) break; #endif } + if (compctx) + (*compctx->alg.compress_init)(compctx); + return compctx; } diff --git a/src/openvpn/options.c b/src/openvpn/options.c index af60850..ecffa2a 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -6318,7 +6318,6 @@ add_option (struct options *options, VERIFY_PERMISSION (OPT_P_COMP); if (p[1]) { - options->comp.flags = 0; if (streq (p[1], "stub")) { options->comp.alg = COMP_ALG_STUB; @@ -6333,6 +6332,7 @@ add_option (struct options *options, else if (streq (p[1], "lzo")) { options->comp.alg = COMP_ALG_LZO; + options->comp.flags = 0; } #endif #if defined(ENABLE_LZ4) @@ -6344,6 +6344,7 @@ add_option (struct options *options, else if (streq (p[1], "lz4-v2")) { options->comp.alg = COMP_ALGV2_LZ4; + options->comp.flags = 0; } #endif else -- 2.5.4 (Apple Git-61)