version 1.35, 2012/06/01 01:01:22 |
version 1.36, 2012/07/06 01:37:21 |
|
|
cctx->term = NULL; |
cctx->term = NULL; |
cctx->rid = rid; |
cctx->rid = rid; |
cmd = reserved = NULL; |
cmd = reserved = NULL; |
|
cctx->env = NULL; |
|
env_len = 0; |
if ((reserved = buffer_get_string_ret(m, NULL)) == NULL || |
if ((reserved = buffer_get_string_ret(m, NULL)) == NULL || |
buffer_get_int_ret(&cctx->want_tty, m) != 0 || |
buffer_get_int_ret(&cctx->want_tty, m) != 0 || |
buffer_get_int_ret(&cctx->want_x_fwd, m) != 0 || |
buffer_get_int_ret(&cctx->want_x_fwd, m) != 0 || |
|
|
xfree(cmd); |
xfree(cmd); |
if (reserved != NULL) |
if (reserved != NULL) |
xfree(reserved); |
xfree(reserved); |
|
for (j = 0; j < env_len; j++) |
|
xfree(cctx->env[j]); |
|
if (env_len > 0) |
|
xfree(cctx->env); |
if (cctx->term != NULL) |
if (cctx->term != NULL) |
xfree(cctx->term); |
xfree(cctx->term); |
|
xfree(cctx); |
error("%s: malformed message", __func__); |
error("%s: malformed message", __func__); |
return -1; |
return -1; |
} |
} |
xfree(reserved); |
xfree(reserved); |
reserved = NULL; |
reserved = NULL; |
|
|
cctx->env = NULL; |
|
env_len = 0; |
|
while (buffer_len(m) > 0) { |
while (buffer_len(m) > 0) { |
#define MUX_MAX_ENV_VARS 4096 |
#define MUX_MAX_ENV_VARS 4096 |
if ((cp = buffer_get_string_ret(m, &len)) == NULL) |
if ((cp = buffer_get_string_ret(m, &len)) == NULL) |
|
|
xfree(cctx->env); |
xfree(cctx->env); |
} |
} |
buffer_free(&cctx->cmd); |
buffer_free(&cctx->cmd); |
|
xfree(cctx); |
return 0; |
return 0; |
} |
} |
|
|