Blob Blame History Raw
From d055981def808c9c2175a8ca3f362b6ea006ebf3 Mon Sep 17 00:00:00 2001
From: Bertrand Bellenot <bertrand.bellenot@cern.ch>
Date: Thu, 8 Feb 2018 10:43:59 +0100
Subject: [PATCH] Fix another potential crash on Windows

On Windows, (as the standard says) calling front() on an empty std::vector causes an undefined behaviour. One must check that the container contains something using empty() before calling front()
---
 core/foundation/src/TClassEdit.cxx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/foundation/src/TClassEdit.cxx b/core/foundation/src/TClassEdit.cxx
index 38c8b1a5a2..954e40fcc5 100644
--- a/core/foundation/src/TClassEdit.cxx
+++ b/core/foundation/src/TClassEdit.cxx
@@ -1900,7 +1900,7 @@ public:
       auto argsEnd = v.end();
       auto argsBeginPlusOne = ++v.begin();
       auto argPos = std::find_if(argsBeginPlusOne, argsEnd,
-                              [](std::string& arg){return arg.front() == ':';});
+           [](std::string& arg){return (!arg.empty() && arg.front() == ':');});
       if (argPos != argsEnd) {
          const int lenght = clName.size();
          int wedgeBalance = 0;
-- 
2.14.3