| Index: base/command_line.cc
 | 
| diff --git a/base/command_line.cc b/base/command_line.cc
 | 
| index b335e7c01a7d3f49ad8547b3d9efb1a3ac17b10d..427bed4ad2a218545cefb81ee084a30da8d8e000 100644
 | 
| --- a/base/command_line.cc
 | 
| +++ b/base/command_line.cc
 | 
| @@ -19,6 +19,7 @@
 | 
|  #include <algorithm>
 | 
|  
 | 
|  #include "base/file_path.h"
 | 
| +#include "base/file_util.h"
 | 
|  #include "base/logging.h"
 | 
|  #include "base/singleton.h"
 | 
|  #include "base/string_split.h"
 | 
| @@ -237,13 +238,11 @@ void CommandLine::SetProcTitle() {
 | 
|    // show up as "exe" in process listings. Read the symlink /proc/self/exe and
 | 
|    // use the path it points at for our process title. Note that this is only for
 | 
|    // display purposes and has no TOCTTOU security implications.
 | 
| -  char buffer[PATH_MAX];
 | 
| -  // Note: readlink() does not append a null byte to terminate the string.
 | 
| -  ssize_t length = readlink("/proc/self/exe", buffer, sizeof(buffer));
 | 
| -  DCHECK(length <= static_cast<ssize_t>(sizeof(buffer)));
 | 
| -  if (length > 0) {
 | 
| +  FilePath target;
 | 
| +  FilePath self_exe("/proc/self/exe");
 | 
| +  if (file_util::ReadSymbolicLink(self_exe, &target)) {
 | 
|      have_argv0 = true;
 | 
| -    title.assign(buffer, length);
 | 
| +    title = target.value();
 | 
|      // If the binary has since been deleted, Linux appends " (deleted)" to the
 | 
|      // symlink target. Remove it, since this is not really part of our name.
 | 
|      const std::string kDeletedSuffix = " (deleted)";
 | 
| 
 |