From e16bfd783755fe7cc8019f28f0eb6e997678d8db Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Sat, 24 Mar 2018 15:50:11 -0400 Subject: [PATCH] GAUCAMOLE-269: Memory effeciency updates. --- src/protocols/ssh/ttymode.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/protocols/ssh/ttymode.c b/src/protocols/ssh/ttymode.c index 4c6091e5..4526cc1f 100644 --- a/src/protocols/ssh/ttymode.c +++ b/src/protocols/ssh/ttymode.c @@ -36,23 +36,22 @@ int guac_ssh_ttymodes_init(char opcode_array[], const int array_size, if ((num_opcodes * GUAC_SSH_TTY_OPCODE_SIZE) >= (array_size)) return 1; + char *current = opcode_array; for (int i = 0; i < num_opcodes; i++) { - /* Calculate offset in array */ - int offset = i * GUAC_SSH_TTY_OPCODE_SIZE; /* Get the next argument to this function */ - guac_ssh_ttymode ttymode = va_arg(args, guac_ssh_ttymode); + guac_ssh_ttymode* ttymode = va_arg(args, guac_ssh_ttymode*); /* Place opcode and value in array */ - opcode_array[offset] = ttymode.opcode; - opcode_array[offset + 1] = (ttymode.value >> 24) & 0xFF; - opcode_array[offset + 2] = (ttymode.value >> 16) & 0xFF; - opcode_array[offset + 3] = (ttymode.value >> 8) & 0xFF; - opcode_array[offset + 4] = ttymode.value & 0xFF; + *(current++) = ttymode->opcode; + *(current++) = (ttymode->value >> 24) & 0xFF; + *(current++) = (ttymode->value >> 16) & 0xFF; + *(current++) = (ttymode->value >> 8) & 0xFF; + *(current++) = ttymode->value & 0xFF; } /* Put the end opcode in the last opcode space */ - opcode_array[num_opcodes * GUAC_SSH_TTY_OPCODE_SIZE] = GUAC_SSH_TTY_OP_END; + *(current) = GUAC_SSH_TTY_OP_END; return 0;