summaryrefslogtreecommitdiff
path: root/source3/registry/regfio.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/registry/regfio.c')
-rw-r--r--source3/registry/regfio.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/source3/registry/regfio.c b/source3/registry/regfio.c
index d64eab84f9..7ab262d822 100644
--- a/source3/registry/regfio.c
+++ b/source3/registry/regfio.c
@@ -18,6 +18,7 @@
*/
#include "includes.h"
+#include "reg_parse_prs.h"
#include "regfio.h"
#include "reg_objects.h"
#include "../librpc/gen_ndr/ndr_security.h"
@@ -31,6 +32,44 @@
*
******************************************************************/
+#if defined(PARANOID_MALLOC_CHECKER)
+#define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem_((ps),sizeof(type),(count))
+#else
+#define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem((ps),sizeof(type),(count))
+#endif
+
+/*******************************************************************
+ Reads or writes an NTTIME structure.
+********************************************************************/
+
+static bool smb_io_time(const char *desc, NTTIME *nttime, prs_struct *ps, int depth)
+{
+ uint32 low, high;
+ if (nttime == NULL)
+ return False;
+
+ prs_debug(ps, depth, desc, "smb_io_time");
+ depth++;
+
+ if(!prs_align(ps))
+ return False;
+
+ if (MARSHALLING(ps)) {
+ low = *nttime & 0xFFFFFFFF;
+ high = *nttime >> 32;
+ }
+
+ if(!prs_uint32("low ", ps, depth, &low)) /* low part */
+ return False;
+ if(!prs_uint32("high", ps, depth, &high)) /* high part */
+ return False;
+
+ if (UNMARSHALLING(ps)) {
+ *nttime = (((uint64_t)high << 32) + low);
+ }
+
+ return True;
+}
/*******************************************************************
*******************************************************************/