aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2019-12-29 12:40:29 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2020-01-05 23:31:20 +0100
commitce43e4346fd8c4262f14b8abcddad209e021fbf1 (patch)
tree0410bda943d7eba0108178e70a6aac7bcd522144 /nx-X11/programs/Xserver/hw/nxagent/Dialog.c
parent46ef20bdb97bc134bb855f8604828ec314716a32 (diff)
downloadnx-libs-ce43e4346fd8c4262f14b8abcddad209e021fbf1.tar.gz
nx-libs-ce43e4346fd8c4262f14b8abcddad209e021fbf1.tar.bz2
nx-libs-ce43e4346fd8c4262f14b8abcddad209e021fbf1.zip
Dialog.c: fix format-truncation warning
Dialog.c: In function ‘nxagentLaunchDialog’: Dialog.c:320:53: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 256 [-Wformat-truncation=] snprintf(dialogDisplay, sizeof(dialogDisplay), "%s", nxagentDisplayName); ^~ ~~~~~~~~~~~~~~~~~~ Dialog.c:320:5: note: ‘snprintf’ output between 1 and 1024 bytes into a destination of size 256 snprintf(dialogDisplay, sizeof(dialogDisplay), "%s", nxagentDisplayName); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Dialog.c')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Dialog.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
index c20a6a475..2d4eb6229 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
@@ -40,6 +40,7 @@
#include "Args.h"
#include "Display.h"
#include "Dialog.h"
+#include "Utils.h"
#include <nx/NX.h>
#include "compext/Compext.h"
@@ -182,7 +183,6 @@ void nxagentResetDialog(int pid)
void nxagentLaunchDialog(DialogType dialogType)
{
- char dialogDisplay[256];
sigset_t set, oldSet;
int *pid;
char *type;
@@ -302,13 +302,23 @@ void nxagentLaunchDialog(DialogType dialogType)
fprintf(stderr, "nxagentLaunchDialog: Launching dialog type [%d] message [%s].\n", type, message);
#endif
+ char *dialogDisplay = NULL;
+ int len = 0;
if (dialogType == DIALOG_FAILED_RECONNECTION)
{
- snprintf(dialogDisplay, sizeof(dialogDisplay), "%s", nxagentDisplayName);
+ len = asprintf(&dialogDisplay, "%s", nxagentDisplayName);
}
else
{
- snprintf(dialogDisplay, sizeof(dialogDisplay), ":%s", display);
+ len = asprintf(&dialogDisplay, ":%s", display);
+ }
+
+ if (len == -1)
+ {
+ #ifdef DEBUG
+ fprintf(stderr, "%s: could not allocate display string.\n", __func__);
+ #endif
+ return;
}
/*
@@ -329,7 +339,7 @@ void nxagentLaunchDialog(DialogType dialogType)
DECODE_DIALOG_TYPE(dialogType), *pid, dialogDisplay);
#endif
- dialogDisplay[0] = '\0';
+ SAFE_free(dialogDisplay);
/*
* Restore the previous set of blocked signal.