From aa46899af15ffe2cfdc54f6b16e72103a389d2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Fri, 12 Oct 2018 12:10:35 +0200 Subject: [PATCH] [apps] Fix StorageCartesianFunction::derivativeNameWithArgument --- apps/shared/storage_cartesian_function.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/shared/storage_cartesian_function.cpp b/apps/shared/storage_cartesian_function.cpp index b7c4df953..999771427 100644 --- a/apps/shared/storage_cartesian_function.cpp +++ b/apps/shared/storage_cartesian_function.cpp @@ -64,13 +64,13 @@ StorageCartesianFunction StorageCartesianFunction::NewModel(Ion::Storage::Record int StorageCartesianFunction::derivativeNameWithArgument(char * buffer, size_t bufferSize, char arg) { // Fill buffer with f(x). Keep one char for derivative sign. int numberOfChars = nameWithArgument(buffer, bufferSize-1, arg); - assert(numberOfChars < bufferSize - 1); + assert(numberOfChars + 1 < bufferSize); char * lastChar = buffer+numberOfChars; - while (*(lastChar+1) != '(' && lastChar >= buffer) { + do { *(lastChar+1) = *lastChar; lastChar--; - } - *lastChar = '\''; + } while (*(lastChar+1) != '(' && lastChar >= buffer); + *(lastChar+1) = '\''; return numberOfChars+1; }