From: Volker Lendecke Date: Mon, 4 Jan 2021 12:50:23 +0000 (+0100) Subject: tdb: Use hex_byte() in read_data() X-Git-Tag: samba-4.14.0rc1~154 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad081bf2ddb60dfd5b8f838741e9de0710598b6a;p=thirdparty%2Fsamba.git tdb: Use hex_byte() in read_data() Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/lib/tdb/tools/tdbrestore.c b/lib/tdb/tools/tdbrestore.c index 9d5146272cc..3312cf74d83 100644 --- a/lib/tdb/tools/tdbrestore.c +++ b/lib/tdb/tools/tdbrestore.c @@ -62,29 +62,7 @@ static int read_linehead(FILE *f) return num_bytes; } -static int read_hex(void) { - int c; - c = getchar(); - if (c == EOF) { - fprintf(stderr, "Unexpected EOF in data\n"); - return -1; - } else if (c == '"') { - fprintf(stderr, "Unexpected \\\" sequence\n"); - return -1; - } else if ('0' <= c && c <= '9') { - return c - '0'; - } else if ('A' <= c && c <= 'F') { - return c - 'A' + 10; - } else if ('a' <= c && c <= 'f') { - return c - 'a' + 10; - } else { - fprintf(stderr, "Invalid hex: %c\n", c); - return -1; - } -} - static int read_data(FILE *f, TDB_DATA *d, size_t size) { - int c, low, high; size_t i; d->dptr = (unsigned char *)malloc(size); @@ -94,25 +72,26 @@ static int read_data(FILE *f, TDB_DATA *d, size_t size) { d->dsize = size; for (i=0; idptr[i]); + if (!ok) { + fprintf(stderr, "Invalid hex: %s\n", in); return -1; } - assert(low == (low & 0x0f)); - d->dptr[i] = (low|high); } else { d->dptr[i] = c; }