From 28b7c44de846930e5f7c9aae3a7a423368c03ae1 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 25 Jan 2009 20:32:59 +0100 Subject: Make smb_bytes_push_str deal with a NULL buf returning NULL --- source3/libsmb/clifile.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source3/libsmb/clifile.c') diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 7c75826414..04bbabe087 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -783,10 +783,15 @@ int cli_nt_create(struct cli_state *cli, const char *fname, uint32 DesiredAccess uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str) { - size_t buflen = talloc_get_size(buf); + size_t buflen; char *converted; size_t converted_size; + if (buf == NULL) { + return NULL; + } + + buflen = talloc_get_size(buf); /* * We're pushing into an SMB buffer, align odd */ -- cgit From 6baf760d176cc5ea8eb0cba6d68171f1950c1b75 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 25 Jan 2009 20:33:22 +0100 Subject: Fix an error path memleak --- source3/libsmb/clifile.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source3/libsmb/clifile.c') diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 04bbabe087..ecb2bf0f5a 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -814,6 +814,7 @@ uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str) buf = TALLOC_REALLOC_ARRAY(NULL, buf, uint8_t, buflen + converted_size); if (buf == NULL) { + TALLOC_FREE(converted); return NULL; } -- cgit From 7f25e0da7348d786a36fa14403938b4f209fb52b Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 26 Jan 2009 03:38:05 +0100 Subject: Decouple clistr_pull from struct cli_state->inbuf --- source3/libsmb/clifile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source3/libsmb/clifile.c') diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index ecb2bf0f5a..02cd2108bf 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -1751,7 +1751,7 @@ int cli_ctemp(struct cli_state *cli, const char *path, char **tmp_path) if (!path2) { return -1; } - clistr_pull(cli, path2, p, + clistr_pull(cli->inbuf, path2, p, len+1, len, STR_ASCII); *tmp_path = path2; } -- cgit