From: Andreas Schneider Date: Thu, 30 Oct 2025 10:03:35 +0000 (+0100) Subject: s3:libsmb: Use a long living context for cli_resolve_path() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a5a6253775c764c036de1616cba0852bbca955d9;p=thirdparty%2Fsamba.git s3:libsmb: Use a long living context for cli_resolve_path() Signed-off-by: Andreas Schneider v --- diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index 8f98da1b28a..2310990a22c 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -932,7 +932,8 @@ SMBC_opendir_ctx(SMBCCTX *context, creds = context->internal->creds; status = cli_resolve_path( - frame, "", + context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -1593,7 +1594,8 @@ SMBC_mkdir_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>mkdir: resolving %s\n", path);*/ - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -1708,7 +1710,8 @@ SMBC_rmdir_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>rmdir: resolving %s\n", path);*/ - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -2019,7 +2022,8 @@ SMBC_chmod_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>unlink: resolving %s\n", path);*/ - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -2223,7 +2227,8 @@ SMBC_unlink_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>unlink: resolving %s\n", path);*/ - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -2405,7 +2410,8 @@ SMBC_rename_ctx(SMBCCTX *ocontext, /*d_printf(">>>rename: resolving %s\n", path1);*/ ocreds = ocontext->internal->creds; - status = cli_resolve_path(frame, "", + status = cli_resolve_path(ocontext->internal->mem_ctx, + "", ocreds, srv->cli, path1, &targetcli1, &targetpath1); if (!NT_STATUS_IS_OK(status)) { @@ -2425,7 +2431,8 @@ SMBC_rename_ctx(SMBCCTX *ocontext, /*d_printf(">>>rename: resolving %s\n", path2);*/ ncreds = ncontext->internal->creds; - status = cli_resolve_path(frame, "", + status = cli_resolve_path(ncontext->internal->mem_ctx, + "", ncreds, srv->cli, path2, &targetcli2, &targetpath2); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c index 79a00af4546..2722d2f725d 100644 --- a/source3/libsmb/libsmb_file.c +++ b/source3/libsmb/libsmb_file.c @@ -128,7 +128,8 @@ SMBC_open_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>open: resolving %s\n", path);*/ status = cli_resolve_path( - frame, "", + context->internal->mem_ctx, + "", creds, srv->cli, path, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -536,7 +537,8 @@ SMBC_getatr(SMBCCTX * context, creds = context->internal->creds; - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, srv->cli, fixedpath, &targetcli, &targetpath); diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c index 56192b61333..c4233891c68 100644 --- a/source3/libsmb/libsmb_stat.c +++ b/source3/libsmb/libsmb_stat.c @@ -258,7 +258,8 @@ SMBC_fstat_ctx(SMBCCTX *context, creds = context->internal->creds; /*d_printf(">>>fstat: resolving %s\n", path);*/ - status = cli_resolve_path(frame, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, file->srv->cli, path, &targetcli, &targetpath); diff --git a/source3/libsmb/libsmb_xattr.c b/source3/libsmb/libsmb_xattr.c index 079253baeec..db9e5ddb751 100644 --- a/source3/libsmb/libsmb_xattr.c +++ b/source3/libsmb/libsmb_xattr.c @@ -872,7 +872,8 @@ cacl_get(SMBCCTX *context, creds = context->internal->creds; status = cli_resolve_path( - ctx, "", + context->internal->mem_ctx, + "", creds, cli, filename, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { @@ -1559,7 +1560,8 @@ cacl_set(SMBCCTX *context, creds = context->internal->creds; - status = cli_resolve_path(ctx, "", + status = cli_resolve_path(context->internal->mem_ctx, + "", creds, cli, filename, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) {