[PATCH] Fix another dangling pointer

Thiago Macieira thiago at macieira.org
Wed May 7 21:57:08 PDT 2014


Same problem as the previous commit: toStdString() returns a temporary,
and c_str() will return a pointer to internal data, freed at the end of
the statement. So get the pointer to be strcpy'ed in the same statement.

Changed to toUtf8() to be more explicit about the encoding and to avoid
std::string

Signed-off-by: Thiago Macieira <thiago at macieira.org>
---
 qt-ui/profile/profilewidget2.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index f2fddb5..17eb2a3 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -841,10 +841,8 @@ void ProfileWidget2::editName()
 			lengthWarning.exec();
 			return;
 		}
-		const char *temp;
-		temp = newName.toStdString().c_str();
-		strcpy(event->name, temp);
-		remember_event(temp);
+		strcpy(event->name, newName.toUtf8());
+		remember_event(event->name);
 	}
 	replot();
 }
-- 
1.8.4.5



More information about the subsurface mailing list