---
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)