#include "lib/util/debug.h"
bool symlink_reparse_buffer_marshall(
- const char *substitute, const char *printname, uint32_t flags,
- TALLOC_CTX *mem_ctx, uint8_t **pdst, size_t *pdstlen)
+ const char *substitute,
+ const char *printname,
+ uint16_t unparsed_path_length,
+ uint32_t flags,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **pdst,
+ size_t *pdstlen)
{
uint8_t *dst = NULL;
size_t dst_len;
SIVAL(dst, 0, IO_REPARSE_TAG_SYMLINK); /* ReparseTag */
SSVAL(dst, 4, 12 + subst_len + print_len); /* ReparseDataLength */
- SSVAL(dst, 6, 0); /* Reserved */
+ SSVAL(dst, 6, unparsed_path_length); /* Reserved */
SSVAL(dst, 8, 0); /* SubstituteNameOffset */
SSVAL(dst, 10, subst_len); /* SubstituteNameLength */
SSVAL(dst, 12, subst_len); /* PrintNameOffset */
};
bool symlink_reparse_buffer_marshall(
- const char *substitute, const char *printname, uint32_t flags,
- TALLOC_CTX *mem_ctx, uint8_t **pdst, size_t *pdstlen);
+ const char *substitute,
+ const char *printname,
+ uint16_t unparsed_path_length,
+ uint32_t flags,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **pdst,
+ size_t *pdstlen);
struct symlink_reparse_struct *symlink_reparse_buffer_parse(
TALLOC_CTX *mem_ctx, const uint8_t *src, size_t srclen);
}
if (!symlink_reparse_buffer_marshall(
- state->link_target, NULL, state->flags, state,
+ state->link_target, NULL, 0, state->flags, state,
&state->in.data, &state->in.length)) {
tevent_req_oom(req);
return;