diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2019-12-29 12:40:29 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2020-01-05 23:31:20 +0100 |
commit | ce43e4346fd8c4262f14b8abcddad209e021fbf1 (patch) | |
tree | 0410bda943d7eba0108178e70a6aac7bcd522144 /nx-X11/programs/Xserver/hw/nxagent/Dialog.c | |
parent | 46ef20bdb97bc134bb855f8604828ec314716a32 (diff) | |
download | nx-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.c | 18 |
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. |