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 <oswald.buddenhagen@nokia.com>
This commit is contained in:
parent
f4d02ecdbf
commit
d48f3fc1e7
@ -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
|
||||
|
@ -117,13 +117,6 @@ QT_BEGIN_NAMESPACE
|
||||
// so we will use 512
|
||||
static const int errorBufferMax = 512;
|
||||
|
||||
#ifdef Q_OS_INTEGRITY
|
||||
static inline char *strdup(const char *data)
|
||||
{
|
||||
return qstrdup(data);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int qt_qprocess_deadChild_pipe[2];
|
||||
static struct sigaction qt_sa_old_sigchld_handler;
|
||||
static void qt_sa_sigchld_handler(int signum)
|
||||
|
Loading…
Reference in New Issue
Block a user