From: Volker Lendecke Date: Mon, 13 May 2024 12:28:55 +0000 (+0200) Subject: smbd: Use fsctl_get_reparse_tag in fsctl_set_reparse_point X-Git-Tag: tdb-1.4.11~692 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=7b6dc319b53ad6df109517ae425d770b62136f7a;p=thirdparty%2Fsamba.git smbd: Use fsctl_get_reparse_tag in fsctl_set_reparse_point Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/modules/util_reparse.c b/source3/modules/util_reparse.c index 5ed203109a5..a8758857464 100644 --- a/source3/modules/util_reparse.c +++ b/source3/modules/util_reparse.c @@ -148,8 +148,6 @@ NTSTATUS fsctl_set_reparse_point(struct files_struct *fsp, const uint8_t *reparse_data = NULL; size_t reparse_data_length; uint32_t existing_tag; - uint8_t *existing_data = NULL; - uint32_t existing_len; NTSTATUS status; uint32_t dos_mode; int ret; @@ -176,23 +174,13 @@ NTSTATUS fsctl_set_reparse_point(struct files_struct *fsp, reparse_tag, reparse_data_length); - status = fsctl_get_reparse_point(fsp, - talloc_tos(), - &existing_tag, - &existing_data, - UINT32_MAX, - &existing_len); - if (NT_STATUS_IS_OK(status)) { - - TALLOC_FREE(existing_data); - - if (existing_tag != reparse_tag) { - DBG_DEBUG("Can't overwrite tag %" PRIX32 - " with tag %" PRIX32 "\n", - existing_tag, - reparse_tag); - return NT_STATUS_IO_REPARSE_TAG_MISMATCH; - } + status = fsctl_get_reparse_tag(fsp, &existing_tag); + if (NT_STATUS_IS_OK(status) && (existing_tag != reparse_tag)) { + DBG_DEBUG("Can't overwrite tag %" PRIX32 " with tag %" PRIX32 + "\n", + existing_tag, + reparse_tag); + return NT_STATUS_IO_REPARSE_TAG_MISMATCH; } /* Store the data */