shill: sanitize SSIDs for WiFiEndpoints.

In the same way that we sanitize SSIDs for WiFiServices,
sanitize SSIDs for WiFiEndpoints.

Previously, some log messages about Endpoints would be
truncated. This happened when the SSID included a NULL
byte.

BUG=None
TEST=new unit test

Change-Id: I4c361579255123091a0b4265837a16d4e930e60c
Reviewed-on: https://gerrit.chromium.org/gerrit/15698
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/wifi_endpoint_unittest.cc b/wifi_endpoint_unittest.cc
index cb02824..23b5269 100644
--- a/wifi_endpoint_unittest.cc
+++ b/wifi_endpoint_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -13,6 +13,7 @@
 #include <chromeos/dbus/service_constants.h>
 #include <gtest/gtest.h>
 
+#include "shill/refptr_types.h"
 #include "shill/wpa_supplicant.h"
 
 using std::map;
@@ -135,4 +136,10 @@
   EXPECT_STREQ(flimflam::kSecurityNone, ParseSecurity(top_params));
 }
 
+TEST_F(WiFiEndpointTest, SSIDWithNull) {
+  WiFiEndpointRefPtr endpoint =
+      WiFiEndpoint::MakeOpenEndpoint(string(1, 0), "00:00:00:00:00:01");
+  EXPECT_EQ("?", endpoint->ssid_string());
+}
+
 }  // namespace shill