fix CHALLENGE state error

Change-Id: Ic555b6be9bceeebe9076847be9fd6f139943ef16
diff --git a/src/requester.cpp b/src/requester.cpp
index 2e6a517..5229c9c 100644
--- a/src/requester.cpp
+++ b/src/requester.cpp
@@ -271,9 +271,11 @@
 
   // update state
   state.m_status = decoded.status;
-  state.m_challengeStatus = decoded.challengeStatus;
-  state.m_remainingTries = decoded.remainingTries;
-  state.m_freshBefore = time::system_clock::now() + decoded.remainingTime;
+  if (decoded.status != Status::SUCCESS && decoded.status != Status::FAILURE) {
+    state.m_challengeStatus = *decoded.challengeStatus;
+    state.m_remainingTries = *decoded.remainingTries;
+    state.m_freshBefore = time::system_clock::now() + *decoded.remainingTime;
+  }
 
   if (decoded.issuedCertName) {
     state.m_issuedCertName = *decoded.issuedCertName;