File 0010-fix-STL-access-undefined-behaviour.patch of Package rstudio

From 03aace0d96edc298c7c9e4fbfb88574d83493e4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar@fedoraproject.org>
Date: Sun, 16 Feb 2020 19:31:47 +0100
Subject: [PATCH 10/11] fix STL access undefined behaviour

(cherry picked from commit 42bbb21db66d10e9fd824b812e4f88e9c8cae532)
---
 src/cpp/session/modules/SessionFiles.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/cpp/session/modules/SessionFiles.cpp b/src/cpp/session/modules/SessionFiles.cpp
index a509c100cf..11c80155a7 100644
--- a/src/cpp/session/modules/SessionFiles.cpp
+++ b/src/cpp/session/modules/SessionFiles.cpp
@@ -909,13 +909,13 @@ SEXP rs_readLines(SEXP filePathSEXP)
       return r::sexp::create(contents, &protect);
    
    std::vector<std::string> splat = core::algorithm::split(contents, "\n");
-   if (splat[splat.size() - 1].empty())
+   if (splat.size() && splat[splat.size() - 1].empty())
       splat.pop_back();
    
    for (std::size_t i = 0, n = splat.size(); i < n; ++i)
    {
       std::string& rElement = splat[i];
-      if (rElement[rElement.size() - 1] == '\r')
+      if (rElement.size() && rElement[rElement.size() - 1] == '\r')
          rElement.erase(rElement.size() - 1);
    }
    
-- 
2.26.2

openSUSE Build Service is sponsored by