Only check for the stratum clean message if we have had a valid message.
diff --git a/cgminer.c b/cgminer.c
index f47141a..8be273e 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -5524,8 +5524,7 @@ static void *stratum_rthread(void *userdata)
if (!parse_method(pool, s) && !parse_stratum_response(pool, s))
applog(LOG_INFO, "Unknown stratum msg: %s", s);
- free(s);
- if (pool->swork.clean) {
+ else if (pool->swork.clean) {
struct work *work = make_work();
/* Generate a single work item to update the current
@@ -5538,6 +5537,7 @@ static void *stratum_rthread(void *userdata)
test_work_current(work);
free_work(work);
}
+ free(s);
}
out: