Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3118)

Unified Diff: net/cert/internal/parse_name.cc

Issue 2865603002: X509NameAttribute::ValueAsString: Decode TeletexString as Latin1. (Closed)
Patch Set: update ParseNameTest Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/cert/internal/parse_name.cc
diff --git a/net/cert/internal/parse_name.cc b/net/cert/internal/parse_name.cc
index d9eaaeed7c86f25de361e8d5f5804f892294a879..ec3277bd3f69d76f515a126e40e3e0d51f68277b 100644
--- a/net/cert/internal/parse_name.cc
+++ b/net/cert/internal/parse_name.cc
@@ -12,6 +12,10 @@
#include "base/sys_byteorder.h"
#include "base/third_party/icu/icu_utf.h"
+#if !defined(OS_NACL)
+#include "net/base/net_string_util.h"
+#endif
+
namespace net {
namespace {
@@ -192,12 +196,11 @@ der::Input TypeDomainComponentOid() {
bool X509NameAttribute::ValueAsString(std::string* out) const {
switch (value_tag) {
case der::kTeletexString:
- for (char c : value.AsStringPiece()) {
- if (c < 32 || c > 126)
- return false;
- }
- *out = value.AsString();
- return true;
+#if !defined(OS_NACL)
+ return ConvertToUtf8(value.AsString(), kCharsetLatin1, out);
+#else
+// For nacl, just fall through to treating like IA5String (ascii).
eroman 2017/05/05 17:55:29 Why the difference for nacl?
mattm 2017/05/05 19:58:39 the net/ build for nacl doesn't include base/net_s
eroman 2017/05/05 20:07:07 It is unfortunate to have a different behavior her
mattm 2017/05/05 20:16:25 Done.
davidben 2017/05/12 16:47:26 FWIW, Latin1 doesn't need much code to convert to
+#endif
case der::kIA5String:
for (char c : value.AsStringPiece()) {
if (static_cast<uint8_t>(c) > 127)

Powered by Google App Engine
This is Rietveld 408576698