https://issues.shibboleth.net/jira/browse/SSPCPP-311
authorScott Cantor <cantor.2@osu.edu>
Mon, 4 Oct 2010 19:13:58 +0000 (19:13 +0000)
committerScott Cantor <cantor.2@osu.edu>
Mon, 4 Oct 2010 19:13:58 +0000 (19:13 +0000)
shibsp/impl/StorageServiceSessionCache.cpp

index 6d2ab66..ca3f50a 100644 (file)
@@ -958,10 +958,11 @@ void SSCache::insert(
 
     if (nameid) {
         // Check for a pending logout.
-        if (strlen(name.get()) > 255)
-            const_cast<char*>(name.get())[255] = 0;
+        char namebuf[256];
+        strncpy(namebuf, name.get(), 255);
+        namebuf[255] = 0;
         string pending;
-        int ver = m_storage_lite->readText("Logout", name.get(), &pending);
+        int ver = m_storage_lite->readText("Logout", namebuf, &pending);
         if (ver > 0) {
             DDF pendobj;
             DDFJanitor jpend(pendobj);