diff --git a/src/libs/3rdparty/libptyqt/unixptyprocess.cpp b/src/libs/3rdparty/libptyqt/unixptyprocess.cpp index a9167e7696d..7cb8237a605 100644 --- a/src/libs/3rdparty/libptyqt/unixptyprocess.cpp +++ b/src/libs/3rdparty/libptyqt/unixptyprocess.cpp @@ -343,15 +343,16 @@ void ShellProcess::configChildProcess() struct utmpx utmpxInfo; memset(&utmpxInfo, 0, sizeof(utmpxInfo)); - strncpy(utmpxInfo.ut_user, qgetenv("USER"), sizeof(utmpxInfo.ut_user)); + strncpy(utmpxInfo.ut_user, qgetenv("USER"), sizeof(utmpxInfo.ut_user) - 1); QString device(m_handleSlaveName); if (device.startsWith("/dev/")) device = device.mid(5); - const char *d = device.toLatin1().constData(); + const auto deviceAsLatin1 = device.toLatin1(); + const char *d = deviceAsLatin1.constData(); - strncpy(utmpxInfo.ut_line, d, sizeof(utmpxInfo.ut_line)); + strncpy(utmpxInfo.ut_line, d, sizeof(utmpxInfo.ut_line) - 1); strncpy(utmpxInfo.ut_id, d + strlen(d) - sizeof(utmpxInfo.ut_id), sizeof(utmpxInfo.ut_id)); diff --git a/src/libs/3rdparty/libvterm/src/state.c b/src/libs/3rdparty/libvterm/src/state.c index b22fba706b6..313e746e77c 100644 --- a/src/libs/3rdparty/libvterm/src/state.c +++ b/src/libs/3rdparty/libvterm/src/state.c @@ -1842,7 +1842,7 @@ static void request_status_string(VTermState *state, VTermStringFragment frag) case ' '|('q'<<8): { // Query DECSCUSR - int reply; + int reply = 2; switch(state->mode.cursor_shape) { case VTERM_PROP_CURSORSHAPE_BLOCK: reply = 2; break; case VTERM_PROP_CURSORSHAPE_UNDERLINE: reply = 4; break; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 2402a8004c5..a260d211ab2 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -3813,8 +3813,10 @@ void ProjectExplorerPluginPrivate::openTerminalHere(const EnvironmentGetter &env return; BuildConfiguration *bc = activeBuildConfiguration(ProjectTree::projectForNode(currentNode)); - if (!bc) + if (!bc) { Terminal::Hooks::instance().openTerminalHook()({{}, currentNode->directory(), environment}); + return; + } IDeviceConstPtr buildDevice = BuildDeviceKitAspect::device(bc->target()->kit()); diff --git a/src/plugins/terminal/terminalpane.cpp b/src/plugins/terminal/terminalpane.cpp index f66e6a51715..260924a1b17 100644 --- a/src/plugins/terminal/terminalpane.cpp +++ b/src/plugins/terminal/terminalpane.cpp @@ -162,7 +162,7 @@ void TerminalPane::setFocus() bool TerminalPane::hasFocus() const { if (const auto t = currentTerminal()) - t->hasFocus(); + return t->hasFocus(); return false; }