summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2018-10-04 11:05:46 +0200
committerJeremy Allison <jra@samba.org>2018-10-08 22:17:09 +0200
commit0c0c79b32e6c28f5e87caf57d9302c263952db71 (patch)
tree3c07d45c7df0b1ad6ef9495287c7eabe424732fa
parent8f211efb3a79f24d9542e1c2472633cce2334208 (diff)
downloadsamba-0c0c79b32e6c28f5e87caf57d9302c263952db71.tar.gz
tdb_unpack: Correct "len" arg for "B" format
All but one of the users of the "B" format specifier passed in a pointer to uint32_t instead of what tdb_unpack expected, an "int". Because this is a purely internal API, change the tdb_unpack function and adjust that one caller. To reviewers: Please check carefully, thanks :-) Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/lib/util_tdb.c4
-rw-r--r--source3/printing/printing.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/source3/lib/util_tdb.c b/source3/lib/util_tdb.c
index 9f39fcb4df3..035daf8b7b7 100644
--- a/source3/lib/util_tdb.c
+++ b/source3/lib/util_tdb.c
@@ -153,7 +153,7 @@ int tdb_unpack(const uint8_t *buf, int in_bufsize, const char *fmt, ...)
uint32_t *d;
size_t bufsize = in_bufsize;
size_t len;
- int *i;
+ uint32_t *i;
void **p;
char *s, **b, **ps;
char c;
@@ -216,7 +216,7 @@ int tdb_unpack(const uint8_t *buf, int in_bufsize, const char *fmt, ...)
memcpy(s, buf, len);
break;
case 'B': /* fixed-length string */
- i = va_arg(ap, int *);
+ i = va_arg(ap, uint32_t *);
b = va_arg(ap, char **);
len = 4;
if (bufsize < len)
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 105166ddf7d..e6caaa1222f 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -352,7 +352,7 @@ static int unpack_devicemode(TALLOC_CTX *mem_ctx,
struct spoolss_DeviceMode *dm;
enum ndr_err_code ndr_err;
char *data = NULL;
- int data_len = 0;
+ uint32_t data_len = 0;
DATA_BLOB blob;
int len = 0;