From: Amos Jeffries Date: Wed, 4 Jan 2012 22:55:08 +0000 (+1300) Subject: Bug 3449: pt3: shm_open can fail with a mangled path X-Git-Tag: BumpSslServerFirst.take05~12^2~92 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38189e8484e95b4cf1f4fcd627d14acbac81bd71;p=thirdparty%2Fsquid.git Bug 3449: pt3: shm_open can fail with a mangled path --- diff --git a/src/ipc/mem/Segment.cc b/src/ipc/mem/Segment.cc index 832261338c..b9cfa6b2f3 100644 --- a/src/ipc/mem/Segment.cc +++ b/src/ipc/mem/Segment.cc @@ -178,9 +178,15 @@ Ipc::Mem::Segment::statSize(const char *context) const String Ipc::Mem::Segment::GenerateName(const char *id) { - assert(BasePath); + assert(BasePath && *BasePath); static const bool nameIsPath = shm_portable_segment_name_is_path(); - String name(nameIsPath ? BasePath : "/squid-"); + String name; + if (nameIsPath) { + name.append(BasePath); + if (name[name.size()-1] != '/') + name.append('/'); + } else + name.append("/squid-"); // append id, replacing slashes with dots for (const char *slash = strchr(id, '/'); slash; slash = strchr(id, '/')) {