1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
samba-mirror/source3/rpc_server/mdssvc/marshalling.h
Ralph Boehme 68bb582bc5 mdssvc: introduce MAX_MDSCMD_SIZE
Allow larger value for the reassembled mdscmd's. Now that the client supports
fragementation, when processing reassambled large result sets from macOS
Spotlight server, it's possible to hit this limit in the unmarshalling
code. Let's just increase it to some larger value.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Noel Power <noel.power@suse.com>
2023-07-24 15:18:32 +00:00

64 lines
2.0 KiB
C

/*
Unix SMB/CIFS implementation.
Main metadata server / Spotlight routines
Copyright (C) Ralph Boehme 2015
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _MDSSVC_MARSHALLING_H
#define _MDSSVC_MARSHALLING_H
#include "dalloc.h"
#include "libcli/util/ntstatus.h"
#include "lib/util/data_blob.h"
#include "librpc/gen_ndr/mdssvc.h"
#define MAX_SL_FRAGMENT_SIZE 0xFFFFF
#define MAX_MDSCMD_SIZE 0xFFFFFF
/* Can be ored and used as flags */
#define SL_ENC_LITTLE_ENDIAN 1
#define SL_ENC_BIG_ENDIAN 2
#define SL_ENC_UTF_16 4
typedef DALLOC_CTX sl_array_t; /* an array of elements */
typedef DALLOC_CTX sl_dict_t; /* an array of key/value elements */
typedef DALLOC_CTX sl_filemeta_t; /* contains one sl_array_t */
typedef int sl_nil_t; /* a nil element */
typedef bool sl_bool_t;
typedef struct timeval sl_time_t;
typedef struct {
char sl_uuid[16];
} sl_uuid_t;
typedef struct {
uint16_t ca_unkn1;
uint32_t ca_context;
DALLOC_CTX *ca_cnids;
} sl_cnids_t; /* an array of CNIDs */
/******************************************************************************
* Function declarations
******************************************************************************/
extern NTSTATUS sl_pack_alloc(TALLOC_CTX *mem_ctx,
DALLOC_CTX *d,
struct mdssvc_blob *b,
size_t max_fragment_size);
extern bool sl_unpack(DALLOC_CTX *query, const char *buf, size_t bufsize);
#endif