Bug 1301008 - Pass safebrowsing v4 list state in base64 format to avoid truncation. r=francois

MozReview-Commit-ID: 6oVdQvEoMm2
This commit is contained in:
Henry Chang
2016-09-07 17:45:15 +08:00
parent 8fe781155e
commit 889e160c68
4 changed files with 13 additions and 21 deletions

View File

@@ -100,7 +100,7 @@ typedef FetchThreatListUpdatesRequest_ListUpdateRequest_Constraints Constraints;
static void
InitListUpdateRequest(ThreatType aThreatType,
const char* aState,
const char* aStateBase64,
ListUpdateRequest* aListUpdateRequest)
{
aListUpdateRequest->set_threat_type(aThreatType);
@@ -114,8 +114,12 @@ InitListUpdateRequest(ThreatType aThreatType,
aListUpdateRequest->set_allocated_constraints(contraints);
// Only set non-empty state.
if (aState[0] != '\0') {
aListUpdateRequest->set_state(aState);
if (aStateBase64[0] != '\0') {
nsCString stateBinary;
nsresult rv = Base64Decode(nsCString(aStateBase64), stateBinary);
if (NS_SUCCEEDED(rv)) {
aListUpdateRequest->set_state(stateBinary.get());
}
}
}
@@ -267,7 +271,7 @@ nsUrlClassifierUtils::GetProtocolVersion(const nsACString& aProvider,
NS_IMETHODIMP
nsUrlClassifierUtils::MakeUpdateRequestV4(const char** aListNames,
const char** aStates,
const char** aStatesBase64,
uint32_t aCount,
nsACString &aRequest)
{
@@ -284,7 +288,7 @@ nsUrlClassifierUtils::MakeUpdateRequestV4(const char** aListNames,
continue; // Unknown list name.
}
auto lur = r.mutable_list_update_requests()->Add();
InitListUpdateRequest(static_cast<ThreatType>(threatType), aStates[i], lur);
InitListUpdateRequest(static_cast<ThreatType>(threatType), aStatesBase64[i], lur);
}
// Then serialize.