diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/src/glfs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/api/src/glfs.c b/api/src/glfs.c index a1c8f6f54cb..bd59027236a 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -1476,6 +1476,8 @@ pub_glfs_sysrq (struct glfs *fs, char sysrq) { glusterfs_ctx_t *ctx = NULL; int ret = 0; + char msg[1024] = {0,}; /* should not exceed 1024 chars */ + size_t rem = sizeof (msg); if (!fs || !fs->ctx) { ret = -1; @@ -1488,13 +1490,12 @@ pub_glfs_sysrq (struct glfs *fs, char sysrq) switch (sysrq) { case GLFS_SYSRQ_HELP: { - char msg[1024]; /* help text should not exceed 1024 chars */ struct glfs_sysrq_help *usage; - msg[0] = '\0'; for (usage = glfs_sysrq_help; usage->sysrq; usage++) { - strncat (msg, usage->msg, 1024); - strncat (msg, " ", 1024); + strncat (msg, usage->msg, rem); + rem -= strlen (usage->msg); + strncat (msg, " ", rem--); } /* not really an 'error', but make sure it gets logged */ |