From d48f3fc1e74f4d489238f511df56a134b53e6a0b Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Tue, 17 Apr 2012 17:07:15 +0300 Subject: fix undefined behavior issue on Integrity in contrast to ::strdup(), qstrdup() allocates memory via new[]; deallocating this memory with free() leads to undefine behavior. Change-Id: I0692c4bef010c05de547283b00b6c6043ac24c79 Reviewed-by: Oswald Buddenhagen --- mkspecs/unsupported/integrity-ghs/qplatformdefs.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/unsupported/integrity-ghs/qplatformdefs.h b/mkspecs/unsupported/integrity-ghs/qplatformdefs.h index 87459d874e..4df7dea1d7 100644 --- a/mkspecs/unsupported/integrity-ghs/qplatformdefs.h +++ b/mkspecs/unsupported/integrity-ghs/qplatformdefs.h @@ -170,6 +170,10 @@ #define QT_VSNPRINTF ::vsnprintf #endif +// INTEGRITY doesn't enable the declaration in _POSIX_SOURCE mode, +// because strdup() is not part of strict Posix; declare it here +extern "C" char *strdup(const char *src); + #ifndef MAXNAMLEN # define MAXNAMLEN NAME_MAX #endif -- cgit v1.2.3