diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 01:20:25 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 01:20:25 +0000 |
commit | 5382cf9088a403e3fa12fa3c5b4130e2d3e09ad8 (patch) | |
tree | a18f5ab26d554c1d7c3caa361564089652758218 /chrome/browser/process_singleton_linux.cc | |
parent | 3773c3e33575a831c195dfdbcad57708f5c57a7a (diff) | |
download | chromium_src-5382cf9088a403e3fa12fa3c5b4130e2d3e09ad8.zip chromium_src-5382cf9088a403e3fa12fa3c5b4130e2d3e09ad8.tar.gz chromium_src-5382cf9088a403e3fa12fa3c5b4130e2d3e09ad8.tar.bz2 |
Put test_user_data in a temp directory instead of using base::DIR_EXE.
base::DIR_EXE could be a very long path, which causes socket creation to fail because socket paths have a limited length. Let's use a temp directory instead. We should also clean up the temp dir when we're done.
Also abort if the socket path is too long.
Review URL: http://codereview.chromium.org/115107
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15607 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/process_singleton_linux.cc')
-rw-r--r-- | chrome/browser/process_singleton_linux.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/chrome/browser/process_singleton_linux.cc b/chrome/browser/process_singleton_linux.cc index fcd64259..57a6531 100644 --- a/chrome/browser/process_singleton_linux.cc +++ b/chrome/browser/process_singleton_linux.cc @@ -64,6 +64,8 @@ void ProcessSingleton::SetupSocket(int* sock, struct sockaddr_un* addr) { LOG(FATAL) << "socket() failed: " << strerror(errno); addr->sun_family = AF_UNIX; + if (socket_path_.value().length() > sizeof(addr->sun_path) - 1) + LOG(FATAL) << "Socket path too long: " << socket_path_.value(); base::strlcpy(addr->sun_path, socket_path_.value().c_str(), sizeof(addr->sun_path)); } |