diff options
Diffstat (limited to 'source/rpc_parse/parse_prs.c')
-rw-r--r-- | source/rpc_parse/parse_prs.c | 396 |
1 files changed, 225 insertions, 171 deletions
diff --git a/source/rpc_parse/parse_prs.c b/source/rpc_parse/parse_prs.c index 49481f7f2e7..3509f996b8b 100644 --- a/source/rpc_parse/parse_prs.c +++ b/source/rpc_parse/parse_prs.c @@ -28,21 +28,24 @@ extern int DEBUGLEVEL; /******************************************************************* debug output for parsing info. ********************************************************************/ -void prs_debug(prs_struct *ps, int depth, const char *desc, const char *fn_name) +void prs_debug(prs_struct * ps, int depth, const char *desc, + const char *fn_name) { CHECK_STRUCT(ps); - DEBUG(5+depth, ("%s%06x %s %s\n", tab_depth(depth), ps->offset, fn_name, desc)); + DEBUG(5 + depth, + ("%s%06x %s %s\n", tab_depth(depth), ps->offset, fn_name, + desc)); } /******************************************************************* debug a parse structure ********************************************************************/ -void prs_debug_out(const prs_struct *ps, char *msg, int level) +void prs_debug_out(const prs_struct * ps, char *msg, int level) { CHECK_STRUCT(ps); - DEBUG(level,("%s ps: io %s align %d offset %d err %d data %p\n", - msg, BOOLSTR(ps->io), ps->align, ps->offset, ps->error, - ps->data)); + DEBUG(level, ("%s ps: io %s align %d offset %d err %d data %p\n", + msg, BOOLSTR(ps->io), ps->align, ps->offset, ps->error, + ps->data)); if (ps->data != NULL) { @@ -53,7 +56,7 @@ void prs_debug_out(const prs_struct *ps, char *msg, int level) /******************************************************************* initialise a parse structure ********************************************************************/ -void prs_init(prs_struct *ps, uint32 size, uint8 align, BOOL io) +void prs_init(prs_struct * ps, uint32 size, uint8 align, BOOL io) { ps->struct_start = 0xfefefefe; ps->io = io; @@ -66,7 +69,7 @@ void prs_init(prs_struct *ps, uint32 size, uint8 align, BOOL io) ps->data_size = 0; ps->start = 0; - ps->end = 0; + ps->end = 0; ps->next = NULL; @@ -75,7 +78,7 @@ void prs_init(prs_struct *ps, uint32 size, uint8 align, BOOL io) if (size != 0) { prs_realloc_data(ps, size); - ps->end = 0xffffffff; + ps->end = 0xffffffff; } CHECK_STRUCT(ps); @@ -84,19 +87,22 @@ void prs_init(prs_struct *ps, uint32 size, uint8 align, BOOL io) /******************************************************************* set the packed data representation type in a parse structure ********************************************************************/ -void prs_set_packtype(prs_struct *ps, const uint8 *pack_type) +void prs_set_packtype(prs_struct * ps, const uint8 * pack_type) { CHECK_STRUCT(ps); ps->bigendian = pack_type[0] == 0x0; + DEBUG(10, + ("prs_set_packtype: bigendian: %s\n", BOOLSTR(ps->bigendian))); } /******************************************************************* create a parse structure ********************************************************************/ -void prs_create(prs_struct *ps, char *data, uint32 size, uint8 align, BOOL io) +void prs_create(prs_struct * ps, char *data, uint32 size, uint8 align, + BOOL io) { - DEBUG(200,("prs_create: data:%p size:%d align:%d io:%s\n", - data, size, align, BOOLSTR(io))); + DEBUG(200, ("prs_create: data:%p size:%d align:%d io:%s\n", + data, size, align, BOOLSTR(io))); prs_init(ps, 0, align, io); ps->data = data; @@ -109,7 +115,7 @@ void prs_create(prs_struct *ps, char *data, uint32 size, uint8 align, BOOL io) /******************************************************************* copy a parse structure ********************************************************************/ -BOOL prs_copy(prs_struct *ps, const prs_struct *from) +BOOL prs_copy(prs_struct * ps, const prs_struct * from) { int len = prs_buf_len(from); CHECK_STRUCT(ps); @@ -135,24 +141,24 @@ BOOL prs_copy(prs_struct *ps, const prs_struct *from) /******************************************************************* allocate a memory buffer. assume it's empty ********************************************************************/ -BOOL prs_alloc_data(prs_struct *buf, int size) +BOOL prs_alloc_data(prs_struct * buf, int size) { CHECK_STRUCT(buf); buf->data_size = size; - buf->data = (char*)malloc(buf->data_size); + buf->data = (char *)malloc(buf->data_size); if (buf->data == NULL && size != 0) { - DEBUG(3,("prs_alloc: could not malloc size %d\n", - buf->data_size)); + DEBUG(3, ("prs_alloc: could not malloc size %d\n", + buf->data_size)); buf->data_size = 0; return False; } bzero(buf->data, buf->data_size); - buf->end = buf->start + size; + buf->end = buf->start + size; CHECK_STRUCT(buf); return True; @@ -161,27 +167,29 @@ BOOL prs_alloc_data(prs_struct *buf, int size) /******************************************************************* search for a memory buffer that falls within the specified offset ********************************************************************/ -static const prs_struct *prs_find(const prs_struct *buf, uint32 offset) +static const prs_struct *prs_find(const prs_struct * buf, uint32 offset) { const prs_struct *f; - if (buf == NULL) return False; + if (buf == NULL) + return False; f = buf; CHECK_STRUCT(f); - DEBUG(200,("prs_find: data[%d..%d] offset: %d\n", - f->start, f->end, offset)); + DEBUG(200, ("prs_find: data[%d..%d] offset: %d\n", + f->start, f->end, offset)); while (f != NULL && offset >= f->end) { - DEBUG(200,("prs_find: next[%d..%d]\n", f->start, f->end)); + DEBUG(200, ("prs_find: next[%d..%d]\n", f->start, f->end)); f = f->next; } if (f != NULL) { - DEBUG(200,("prs_find: found data[%d..%d]\n", f->start, f->end)); + DEBUG(200, + ("prs_find: found data[%d..%d]\n", f->start, f->end)); } return f; @@ -190,20 +198,21 @@ static const prs_struct *prs_find(const prs_struct *buf, uint32 offset) /******************************************************************* allocates a memory buffer structure ********************************************************************/ -BOOL prs_buf_copy(char *copy_into, const prs_struct *buf, - uint32 offset, uint32 len) +BOOL prs_buf_copy(char *copy_into, const prs_struct * buf, + uint32 offset, uint32 len) { uint32 end = offset + len; char *q = NULL; uint32 data_len = prs_buf_len(buf); uint32 start_offset = offset; const prs_struct *bcp = buf; - - if (buf == NULL || copy_into == NULL) return False; + + if (buf == NULL || copy_into == NULL) + return False; CHECK_STRUCT(buf); - DEBUG(200,("prs_struct_copy: data[%d..%d] offset %d len %d\n", - buf->start, data_len, offset, len)); + DEBUG(200, ("prs_struct_copy: data[%d..%d] offset %d len %d\n", + buf->start, data_len, offset, len)); prs_debug_out(bcp, "prs_struct_copy", 200); @@ -214,23 +223,24 @@ BOOL prs_buf_copy(char *copy_into, const prs_struct *buf, bcp = prs_find(bcp, offset); copy_len = bcp->end - offset; - DEBUG(200,("\tdata[%d..%d] - offset %d len %d\n", - bcp->start, bcp->end, - offset, copy_len)); + DEBUG(200, ("\tdata[%d..%d] - offset %d len %d\n", + bcp->start, bcp->end, offset, copy_len)); memcpy(copy_into, q, copy_len); - - offset += copy_len; + + offset += copy_len; copy_into += copy_len; } if (bcp != NULL) { - DEBUG(200,("prs_struct_copy: copied %d bytes\n", offset - start_offset)); + DEBUG(200, + ("prs_struct_copy: copied %d bytes\n", + offset - start_offset)); } else { - DEBUG(200,("prs_struct_copy: failed\n")); + DEBUG(200, ("prs_struct_copy: failed\n")); } return buf != NULL; @@ -239,29 +249,33 @@ BOOL prs_buf_copy(char *copy_into, const prs_struct *buf, /******************************************************************* frees up a memory buffer. ********************************************************************/ -void prs_struct_free(prs_struct **buf) +void prs_struct_free(prs_struct ** buf) { - if (buf == NULL) return; - if ((*buf) == NULL) return; + if (buf == NULL) + return; + if ((*buf) == NULL) + return; CHECK_STRUCT(*buf); - prs_free_data(*buf); /* delete memory data */ - free(*buf); /* delete item */ + prs_free_data(*buf); /* delete memory data */ + free(*buf); /* delete item */ (*buf) = NULL; } /******************************************************************* frees a memory buffer chain. assumes that all items are malloced. ********************************************************************/ -static void prs_free_chain(prs_struct **buf) +static void prs_free_chain(prs_struct ** buf) { - if (buf == NULL) return; - if ((*buf) == NULL) return; + if (buf == NULL) + return; + if ((*buf) == NULL) + return; CHECK_STRUCT(*buf); if ((*buf)->next != NULL) { - prs_free_chain(&((*buf)->next)); /* delete all other items in chain */ + prs_free_chain(&((*buf)->next)); /* delete all other items in chain */ } prs_struct_free(buf); } @@ -269,14 +283,15 @@ static void prs_free_chain(prs_struct **buf) /******************************************************************* frees a memory buffer. ********************************************************************/ -void prs_free_data(prs_struct *buf) +void prs_free_data(prs_struct * buf) { - if (buf == NULL) return; + if (buf == NULL) + return; if (buf->data != NULL) { CHECK_STRUCT(buf); - free(buf->data); /* delete data in this structure */ + free(buf->data); /* delete data in this structure */ buf->data = NULL; } buf->data_size = 0; @@ -291,8 +306,10 @@ static void *prs_realloc(void *p, size_t size) return NULL; } ret = (void *)malloc(size); - if (!ret) return NULL; - if (p) { + if (!ret) + return NULL; + if (p) + { memcpy(ret, p, size); memset(p, 0, 1); } @@ -303,7 +320,7 @@ static void *prs_realloc(void *p, size_t size) /******************************************************************* reallocate a memory buffer ********************************************************************/ -BOOL prs_realloc_data(prs_struct *buf, size_t new_size) +BOOL prs_realloc_data(prs_struct * buf, size_t new_size) { char *new_data; @@ -317,32 +334,35 @@ BOOL prs_realloc_data(prs_struct *buf, size_t new_size) return True; } - new_data = (char*)Realloc(buf->data, new_size); + new_data = (char *)Realloc(buf->data, new_size); if (new_data != NULL) { if (new_size > buf->data_size) { - memset(&new_data[buf->data_size], 0, new_size - buf->data_size); + memset(&new_data[buf->data_size], 0, + new_size - buf->data_size); } buf->data = new_data; buf->data_size = new_size; } else if (buf->data_size >= new_size) { - DEBUG(3,("prs_realloc_data: warning - could not realloc to %d\n", - new_size)); + DEBUG(3, + ("prs_realloc_data: warning - could not realloc to %d\n", + new_size)); } - else + else { - DEBUG(3,("prs_realloc_data: error - could not realloc to %d\n", - new_size)); + DEBUG(3, + ("prs_realloc_data: error - could not realloc to %d\n", + new_size)); prs_free_data(buf); return False; } - buf->end = buf->start + new_size; + buf->end = buf->start + new_size; prs_debug_out(buf, "prs_realloc_data - after", 200); return True; @@ -351,7 +371,7 @@ BOOL prs_realloc_data(prs_struct *buf, size_t new_size) /******************************************************************* reallocate a memory buffer, retrospectively :-) ********************************************************************/ -BOOL prs_grow_data(prs_struct *buf, BOOL io, int new_size, BOOL force_grow) +BOOL prs_grow_data(prs_struct * buf, BOOL io, int new_size, BOOL force_grow) { if (buf == NULL) { @@ -378,7 +398,7 @@ BOOL prs_grow_data(prs_struct *buf, BOOL io, int new_size, BOOL force_grow) /******************************************************************* add up the lengths of all sections. ********************************************************************/ -uint32 prs_buf_len(const prs_struct *buf) +uint32 prs_buf_len(const prs_struct * buf) { int len = 0; CHECK_STRUCT(buf); @@ -393,7 +413,7 @@ uint32 prs_buf_len(const prs_struct *buf) /******************************************************************* return the memory location specified by may return NULL. ********************************************************************/ -char *prs_data(const prs_struct *buf, uint32 offset) +char *prs_data(const prs_struct * buf, uint32 offset) { CHECK_STRUCT(buf); buf = prs_find(buf, offset); @@ -408,7 +428,7 @@ char *prs_data(const prs_struct *buf, uint32 offset) /******************************************************************* link one parsing structure to another ********************************************************************/ -void prs_link(prs_struct *prev, prs_struct *ps, prs_struct *next) +void prs_link(prs_struct * prev, prs_struct * ps, prs_struct * next) { CHECK_STRUCT(ps); if (next != NULL) @@ -420,23 +440,24 @@ void prs_link(prs_struct *prev, prs_struct *ps, prs_struct *next) CHECK_STRUCT(prev); } ps->start = prev != NULL ? prev->end : 0; - ps->end = ps->start + ps->offset; + ps->end = ps->start + ps->offset; ps->next = next; - DEBUG(150,("prs_link: start %d end %d\n", ps->start, ps->end)); + DEBUG(150, ("prs_link: start %d end %d\n", ps->start, ps->end)); } /******************************************************************* align a pointer to a multiple of align_offset bytes. looks like it will work for offsets of 0, 2 and 4... ********************************************************************/ -void prs_align(prs_struct *ps) +void prs_align(prs_struct * ps) { int mod; CHECK_STRUCT(ps); - if (ps->error) return; - mod = ps->offset & (ps->align-1); + if (ps->error) + return; + mod = ps->offset & (ps->align - 1); if (ps->align != 0 && mod != 0) { ps->offset += ps->align - mod; @@ -449,24 +470,25 @@ void prs_align(prs_struct *ps) depends on the data stream mode (io) ********************************************************************/ -BOOL prs_grow(prs_struct *ps, uint32 new_size) +BOOL prs_grow(prs_struct * ps, uint32 new_size) { CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; return prs_grow_data(ps, ps->io, new_size, False); } /******************************************************************* lengthens a buffer by len bytes and copies data into it. ********************************************************************/ -BOOL prs_append_data(prs_struct *ps, const char *data, int len) +BOOL prs_append_data(prs_struct * ps, const char *data, int len) { int prev_size = ps->data_size; - int new_size = prev_size + len; + int new_size = prev_size + len; char *to; - DEBUG(200,("prs_append_data: prev_size: %d new_size: %d\n", - prev_size, new_size)); + DEBUG(200, ("prs_append_data: prev_size: %d new_size: %d\n", + prev_size, new_size)); CHECK_STRUCT(ps); prs_realloc_data(ps, new_size); @@ -481,7 +503,7 @@ BOOL prs_append_data(prs_struct *ps, const char *data, int len) return True; } -BOOL prs_add_data(prs_struct *ps, const char *data, int len) +BOOL prs_add_data(prs_struct * ps, const char *data, int len) { int prev_size; int new_size; @@ -491,10 +513,10 @@ BOOL prs_add_data(prs_struct *ps, const char *data, int len) if (ps->data == NULL) { - DEBUG(10,("prs_add_data: new_size: %d\n", len)); + DEBUG(10, ("prs_add_data: new_size: %d\n", len)); prs_init(ps, len, 4, True); prev_size = 0; - new_size = len; + new_size = len; if (ps->data == NULL) { return False; @@ -503,28 +525,28 @@ BOOL prs_add_data(prs_struct *ps, const char *data, int len) else { prev_size = ps->data_size; - new_size = prev_size + len; - DEBUG(10,("prs_add_data: prev_size: %d new_size: %d\n", - prev_size, new_size)); + new_size = prev_size + len; + DEBUG(10, ("prs_add_data: prev_size: %d new_size: %d\n", + prev_size, new_size)); if (!prs_realloc_data(ps, new_size)) { return False; } } - DEBUG(10,("ps->start: %d\n", ps->start)); + DEBUG(10, ("ps->start: %d\n", ps->start)); ps->start = 0x0; to = prs_data(ps, prev_size); if (to == NULL) { - DEBUG(10,("prs_add_data: data could not be found\n")); + DEBUG(10, ("prs_add_data: data could not be found\n")); return False; } if (ps->data_size != new_size) { - DEBUG(10,("prs_add_data: ERROR: data used %d new_size %d\n", - ps->data_size, new_size)); + DEBUG(10, ("prs_add_data: ERROR: data used %d new_size %d\n", + ps->data_size, new_size)); return False; } memcpy(to, data, len); @@ -534,11 +556,12 @@ BOOL prs_add_data(prs_struct *ps, const char *data, int len) /******************************************************************* stream a uint8 ********************************************************************/ -BOOL _prs_uint8(char *name, prs_struct *ps, int depth, uint8 *data8) +BOOL _prs_uint8(char *name, prs_struct * ps, int depth, uint8 * data8) { char *q; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; prs_grow(ps, ps->offset + 1); q = prs_data(ps, ps->offset); if (q == NULL) @@ -549,7 +572,7 @@ BOOL _prs_uint8(char *name, prs_struct *ps, int depth, uint8 *data8) } DBG_RW_CVAL(name, depth, ps->offset, ps->io, q, *data8) - ps->offset += 1; + ps->offset += 1; return True; @@ -558,11 +581,12 @@ BOOL _prs_uint8(char *name, prs_struct *ps, int depth, uint8 *data8) /******************************************************************* stream a uint16 ********************************************************************/ -BOOL _prs_uint16(char *name, prs_struct *ps, int depth, uint16 *data16) +BOOL _prs_uint16(char *name, prs_struct * ps, int depth, uint16 * data16) { char *q; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; prs_grow(ps, ps->offset + 2); q = prs_data(ps, ps->offset); if (q == NULL) @@ -572,7 +596,7 @@ BOOL _prs_uint16(char *name, prs_struct *ps, int depth, uint16 *data16) return False; } - DBG_RW_SVAL(name, depth, ps->offset, ps->io, ps->bigendian, q, *data16) + DBG_RW_SVAL(name, depth, ps->offset, ps->io, ps->bigendian, q, *data16); ps->offset += 2; return True; @@ -581,11 +605,12 @@ BOOL _prs_uint16(char *name, prs_struct *ps, int depth, uint16 *data16) /******************************************************************* hash a stream. ********************************************************************/ -BOOL _prs_hash1(prs_struct *ps, uint32 offset, uint8 sess_key[16]) +BOOL _prs_hash1(prs_struct * ps, uint32 offset, uint8 sess_key[16]) { char *q; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; q = prs_data(ps, ps->offset); if (q == NULL) { @@ -595,11 +620,11 @@ BOOL _prs_hash1(prs_struct *ps, uint32 offset, uint8 sess_key[16]) } #ifdef DEBUG_PASSWORD - DEBUG(100,("prs_hash1\n")); + DEBUG(100, ("prs_hash1\n")); dump_data(100, sess_key, 16); dump_data(100, q, 68); #endif - SamOEMhash((uchar*)q, sess_key, 2); + SamOEMhash((uchar *) q, sess_key, 2); #ifdef DEBUG_PASSWORD dump_data(100, q, 68); #endif @@ -610,23 +635,25 @@ BOOL _prs_hash1(prs_struct *ps, uint32 offset, uint8 sess_key[16]) /******************************************************************* stream a uint32 ********************************************************************/ -BOOL _prs_uint32(char *name, prs_struct *ps, int depth, uint32 *data32) +BOOL _prs_uint32(char *name, prs_struct * ps, int depth, uint32 * data32) { char *q; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; prs_grow(ps, ps->offset + 4); q = prs_data(ps, ps->offset); if (q == NULL) { fstring str; - slprintf(str, sizeof(str)-1, "_prs_uint32 error (%s)", name); + slprintf(str, sizeof(str) - 1, "_prs_uint32 error (%s)", + name); ps->error = True; prs_debug_out(ps, str, 5); return False; } - DBG_RW_IVAL(name, depth, ps->offset, ps->io, ps->bigendian, q, *data32) + DBG_RW_IVAL(name, depth, ps->offset, ps->io, ps->bigendian, q, *data32); ps->offset += 4; return True; @@ -636,7 +663,8 @@ BOOL _prs_uint32(char *name, prs_struct *ps, int depth, uint32 *data32) /****************************************************************** stream an array of uint8s. length is number of uint8s ********************************************************************/ -BOOL _prs_uint8s(BOOL charmode, char *name, prs_struct *ps, int depth, uint8 *data8s, int len) +BOOL _prs_uint8s(BOOL charmode, char *name, prs_struct * ps, int depth, + uint8 * data8s, int len) { char *q; int end_offset; @@ -648,21 +676,22 @@ BOOL _prs_uint8s(BOOL charmode, char *name, prs_struct *ps, int depth, uint8 *da return True; } - if (ps->error) return False; + if (ps->error) + return False; end_offset = ps->offset + len * sizeof(uint8); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); - if (q == NULL || e == NULL) + if (q == NULL || e == NULL) { ps->error = True; prs_debug_out(ps, "_prs_uint8s error", 5); return False; } - DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, data8s, len) - ps->offset = end_offset; + DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, data8s, + len) ps->offset = end_offset; return True; } @@ -670,13 +699,15 @@ BOOL _prs_uint8s(BOOL charmode, char *name, prs_struct *ps, int depth, uint8 *da /****************************************************************** stream an array of uint16s. length is number of uint16s ********************************************************************/ -BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 *data16s, int len) +BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct * ps, int depth, + uint16 * data16s, int len) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (len == 0) { @@ -686,7 +717,7 @@ BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 * end_offset = ps->offset + len * sizeof(uint16); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -695,7 +726,7 @@ BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 * return False; } - DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, data16s, len) + DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, data16s, len); ps->offset = end_offset; return True; @@ -704,13 +735,15 @@ BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 * /****************************************************************** stream an array of uint32s. length is number of uint32s ********************************************************************/ -BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 *data32s, int len) +BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct * ps, int depth, + uint32 * data32s, int len) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (len == 0) { @@ -720,7 +753,7 @@ BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 * end_offset = ps->offset + len * sizeof(uint32); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -729,7 +762,7 @@ BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 * return False; } - DBG_RW_PIVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, data32s, len) + DBG_RW_PIVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, data32s, len); ps->offset = end_offset; return True; @@ -739,13 +772,15 @@ BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 * stream a "not" unicode string, length/buffer specified separately, in byte chars ********************************************************************/ -BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct *ps, int depth, BUFFER2 *str) +BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct * ps, int depth, + BUFFER2 * str) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (str->buf_len == 0) { @@ -755,7 +790,7 @@ BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct *ps, int depth, BUFFER2 end_offset = ps->offset + str->buf_len * sizeof(uint8); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -764,8 +799,8 @@ BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct *ps, int depth, BUFFER2 return False; } - DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, str->buffer, str->buf_len) - ps->offset = end_offset; + DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, + str->buffer, str->buf_len) ps->offset = end_offset; return True; } @@ -774,13 +809,15 @@ BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct *ps, int depth, BUFFER2 stream a string, length/buffer specified separately, in uint8 chars. ********************************************************************/ -BOOL _prs_string2(BOOL charmode, char *name, prs_struct *ps, int depth, STRING2 *str) +BOOL _prs_string2(BOOL charmode, char *name, prs_struct * ps, int depth, + STRING2 * str) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (str->str_str_len == 0) { @@ -790,7 +827,7 @@ BOOL _prs_string2(BOOL charmode, char *name, prs_struct *ps, int depth, STRING2 end_offset = ps->offset + str->str_str_len * sizeof(uint8); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -799,8 +836,8 @@ BOOL _prs_string2(BOOL charmode, char *name, prs_struct *ps, int depth, STRING2 return False; } - DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, str->buffer, str->str_str_len) - ps->offset = end_offset; + DBG_RW_PCVAL(charmode, name, depth, ps->offset, ps->io, q, + str->buffer, str->str_str_len) ps->offset = end_offset; return True; } @@ -809,13 +846,15 @@ BOOL _prs_string2(BOOL charmode, char *name, prs_struct *ps, int depth, STRING2 stream a unicode string, length/buffer specified separately, in uint16 chars. ********************************************************************/ -BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 *str) +BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct * ps, int depth, + UNISTR2 * str) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (str->uni_str_len == 0) { @@ -825,7 +864,7 @@ BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 end_offset = ps->offset + str->uni_str_len * sizeof(uint16); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -834,7 +873,7 @@ BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 return False; } - DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, str->buffer, str->uni_str_len) + DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, str->buffer, str->uni_str_len); ps->offset = end_offset; return True; @@ -844,13 +883,15 @@ BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 stream a unicode string, length/buffer specified separately, in uint16 chars. ********************************************************************/ -BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 *str, prs_struct *ps, int depth) +BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 * str, prs_struct * ps, + int depth) { char *q; int end_offset; char *e; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (str->uni_str_len == 0) { @@ -860,7 +901,7 @@ BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 *str, prs_struct *ps, int d end_offset = ps->offset + str->uni_str_len * sizeof(uint16); prs_grow(ps, end_offset); q = prs_data(ps, ps->offset); - e = prs_data(ps, end_offset-1); + e = prs_data(ps, end_offset - 1); if (q == NULL || e == NULL) { @@ -869,7 +910,7 @@ BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 *str, prs_struct *ps, int d return False; } - DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, str->str.buffer, str->uni_str_len) + DBG_RW_PSVAL(charmode, name, depth, ps->offset, ps->io, ps->bigendian, q, str->str.buffer, str->uni_str_len); ps->offset = end_offset; return True; @@ -878,35 +919,36 @@ BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 *str, prs_struct *ps, int d /******************************************************************* stream a unicode null-terminated string ********************************************************************/ -BOOL _prs_unistr(char *name, prs_struct *ps, int depth, UNISTR *str) +BOOL _prs_unistr(char *name, prs_struct * ps, int depth, UNISTR * str) { int i = -1; uint8 *start; CHECK_STRUCT(ps); - if (ps->error) return False; - start = (uint8*)prs_data(ps, ps->offset); + if (ps->error) + return False; + start = (uint8 *) prs_data(ps, ps->offset); do { char *q; i++; - prs_grow(ps, ps->offset + (i+1)*2); - q = prs_data(ps, ps->offset + i*2); - if (q == NULL) + prs_grow(ps, ps->offset + (i + 1) * 2); + q = prs_data(ps, ps->offset + i * 2); + if (q == NULL) { ps->error = True; prs_debug_out(ps, "_prs_unistr error", 5); return False; } - RW_SVAL(ps->io, ps->bigendian, q, str->buffer[i],0); + RW_SVAL(ps->io, ps->bigendian, q, str->buffer[i], 0); } - while ((((size_t)i) < sizeof(str->buffer) / sizeof(str->buffer[0])) && - (str->buffer[i] != 0)); + while ((((size_t) i) < sizeof(str->buffer) / sizeof(str->buffer[0])) + && (str->buffer[i] != 0)); - ps->offset += (i+1)*2; + ps->offset += (i + 1) * 2; - dump_data(5+depth, (char *)start, i * 2); + dump_data(5 + depth, (char *)start, i * 2); return True; } @@ -919,31 +961,35 @@ BOOL _prs_unistr(char *name, prs_struct *ps, int depth, UNISTR *str) (up to max size of pstring - 1024 chars). ********************************************************************/ -BOOL _prs_string(char *name, prs_struct *ps, int depth, char *str, uint16 len, uint16 max_buf_size) +BOOL _prs_string(char *name, prs_struct * ps, int depth, char *str, + uint16 len, uint16 max_buf_size) { - int i = -1; /* start off at zero after 1st i++ */ + int i = -1; /* start off at zero after 1st i++ */ BOOL len_limited; CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; len_limited = len == 0 || !ps->io; - DEBUG(200,("_prs_string: string %s len %d max %d\n", - str, len, max_buf_size)); + DEBUG(200, ("_prs_string: string %s len %d max %d\n", + str, len, max_buf_size)); - DEBUG(10,("%s%04x %s: ", tab_depth(depth), ps->offset, name != NULL ? name : "")); + DEBUG(10, + ("%s%04x %s: ", tab_depth(depth), ps->offset, + name != NULL ? name : "")); do { char *q; i++; - prs_grow(ps, ps->offset + i+1); + prs_grow(ps, ps->offset + i + 1); q = prs_data(ps, ps->offset + i); if (q == NULL) { ps->error = True; - DEBUG(10,("%s\n", str)); + DEBUG(10, ("%s\n", str)); prs_debug_out(ps, "_prs_string error", 5); return False; } @@ -955,14 +1001,15 @@ BOOL _prs_string(char *name, prs_struct *ps, int depth, char *str, uint16 len, u else { uint8 dummy = 0; - RW_CVAL(ps->io, q, dummy,0); + RW_CVAL(ps->io, q, dummy, 0); } - } while (i < max_buf_size && (len_limited ? str[i] != 0 : i < len) ); + } + while (i < max_buf_size && (len_limited ? str[i] != 0 : i < len)); - ps->offset += i+1; + ps->offset += i + 1; - DEBUG(10,("%s\n", str)); + DEBUG(10, ("%s\n", str)); return True; } @@ -971,10 +1018,12 @@ BOOL _prs_string(char *name, prs_struct *ps, int depth, char *str, uint16 len, u prs_uint16 wrapper. call this and it sets up a pointer to where the uint16 should be stored, or gets the size if reading ********************************************************************/ -BOOL _prs_uint16_pre(char *name, prs_struct *ps, int depth, uint16 *data16, uint32 *offset) +BOOL _prs_uint16_pre(char *name, prs_struct * ps, int depth, uint16 * data16, + uint32 * offset) { CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; (*offset) = ps->offset; if (ps->io) { @@ -992,11 +1041,12 @@ BOOL _prs_uint16_pre(char *name, prs_struct *ps, int depth, uint16 *data16, uint prs_uint16 wrapper. call this and it retrospectively stores the size. does nothing on reading, as that is already handled by ...._pre() ********************************************************************/ -BOOL _prs_uint16_post(char *name, prs_struct *ps, int depth, uint16 *data16, - uint32 ptr_uint16, uint32 start_offset) +BOOL _prs_uint16_post(char *name, prs_struct * ps, int depth, uint16 * data16, + uint32 ptr_uint16, uint32 start_offset) { CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (!ps->io) { /* storing: go back and do a retrospective job. i hate this */ @@ -1018,10 +1068,12 @@ BOOL _prs_uint16_post(char *name, prs_struct *ps, int depth, uint16 *data16, prs_uint32 wrapper. call this and it sets up a pointer to where the uint32 should be stored, or gets the size if reading ********************************************************************/ -BOOL _prs_uint32_pre(char *name, prs_struct *ps, int depth, uint32 *data32, uint32 *offset) +BOOL _prs_uint32_pre(char *name, prs_struct * ps, int depth, uint32 * data32, + uint32 * offset) { CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; (*offset) = ps->offset; if (ps->io) { @@ -1039,11 +1091,12 @@ BOOL _prs_uint32_pre(char *name, prs_struct *ps, int depth, uint32 *data32, uint prs_uint32 wrapper. call this and it retrospectively stores the size. does nothing on reading, as that is already handled by ...._pre() ********************************************************************/ -BOOL _prs_uint32_post(char *name, prs_struct *ps, int depth, uint32 *data32, - uint32 ptr_uint32, uint32 data_size) +BOOL _prs_uint32_post(char *name, prs_struct * ps, int depth, uint32 * data32, + uint32 ptr_uint32, uint32 data_size) { CHECK_STRUCT(ps); - if (ps->error) return False; + if (ps->error) + return False; if (!ps->io) { /* storing: go back and do a retrospective job. i hate this */ @@ -1062,11 +1115,11 @@ BOOL _prs_uint32_post(char *name, prs_struct *ps, int depth, uint32 *data32, /******************************************************************* prs_tdb_store. stores prs_struct data by prs_struct key ********************************************************************/ -int prs_tdb_delete(TDB_CONTEXT *tdb, prs_struct *pk) +int prs_tdb_delete(TDB_CONTEXT * tdb, prs_struct * pk) { TDB_DATA key; - key.dptr = (char*)prs_data(pk, 0); + key.dptr = (char *)prs_data(pk, 0); key.dsize = prs_buf_len(pk); return tdb_delete(tdb, key); @@ -1075,12 +1128,13 @@ int prs_tdb_delete(TDB_CONTEXT *tdb, prs_struct *pk) /******************************************************************* prs_tdb_store. stores prs_struct data by prs_struct key ********************************************************************/ -int prs_tdb_store(TDB_CONTEXT *tdb, int flgs, prs_struct *pk, prs_struct *pd) +int prs_tdb_store(TDB_CONTEXT * tdb, int flgs, prs_struct * pk, + prs_struct * pd) { TDB_DATA key; TDB_DATA data; - key.dptr = (char*)prs_data(pk, 0); + key.dptr = (char *)prs_data(pk, 0); key.dsize = prs_buf_len(pk); data.dptr = prs_data(pd, 0); @@ -1092,12 +1146,12 @@ int prs_tdb_store(TDB_CONTEXT *tdb, int flgs, prs_struct *pk, prs_struct *pd) /******************************************************************* prs_tdb_fetch. fetches prs_struct data by prs_struct key ********************************************************************/ -void prs_tdb_fetch(TDB_CONTEXT *tdb, prs_struct *pk, prs_struct *pd) +void prs_tdb_fetch(TDB_CONTEXT * tdb, prs_struct * pk, prs_struct * pd) { TDB_DATA key; TDB_DATA data; - key.dptr = (char*)prs_data(pk, 0); + key.dptr = (char *)prs_data(pk, 0); key.dsize = prs_buf_len(pk); data = tdb_fetch(tdb, key); |