From a13c57abd4d4c6e90ed1e66f74f582751eded47f Mon Sep 17 00:00:00 2001 From: Krzysztof Jackiewicz Date: Fri, 3 Jul 2015 16:51:22 +0200 Subject: [PATCH] Fix potential buffer overflow error CID: 40674 Change backported from security-server repository. Change-Id: I7613de85e79bc5627336c70842c64bd35eb36468 --- src/manager/main/socket-manager.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/manager/main/socket-manager.cpp b/src/manager/main/socket-manager.cpp index 44a7d3c..c0bc93f 100644 --- a/src/manager/main/socket-manager.cpp +++ b/src/manager/main/socket-manager.cpp @@ -488,6 +488,14 @@ int SocketManager::CreateDomainSocketHelp( { int sockfd; + if(desc.serviceHandlerPath.size()*sizeof(decltype(desc.serviceHandlerPath)::value_type) >= + sizeof(static_cast(0)->sun_path)) + { + LogError("Service handler path too long: " << desc.serviceHandlerPath.size()); + ThrowMsg(Exception::InitFailed, + "Service handler path too long: " << desc.serviceHandlerPath.size()); + } + if (-1 == (sockfd = socket(AF_UNIX, SOCK_STREAM, 0))) { int err = errno; LogError("Error in socket: " << GetErrnoString(err)); -- 2.7.4