diff options
author | 2017-02-17 22:24:45 +0000 | |
---|---|---|
committer | 2017-02-17 22:24:45 +0000 | |
commit | 92f7551051a82acd2ab08ca85a8c34ce754565a5 (patch) | |
tree | 411a822e26cbf6701828876940b8d5ebcc26a3ba /lib/libc | |
parent | regen (diff) | |
download | wireguard-openbsd-92f7551051a82acd2ab08ca85a8c34ce754565a5.tar.xz wireguard-openbsd-92f7551051a82acd2ab08ca85a8c34ce754565a5.zip |
use common errnos instead of random strings as error indicators in
pack/unpack contexts.
ok krw@ deraadt@
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/asr/asr_debug.c | 7 | ||||
-rw-r--r-- | lib/libc/asr/asr_private.h | 6 | ||||
-rw-r--r-- | lib/libc/asr/asr_utils.c | 18 |
3 files changed, 16 insertions, 15 deletions
diff --git a/lib/libc/asr/asr_debug.c b/lib/libc/asr/asr_debug.c index 09ce456d599..0c5f2823331 100644 --- a/lib/libc/asr/asr_debug.c +++ b/lib/libc/asr/asr_debug.c @@ -1,4 +1,4 @@ -/* $OpenBSD: asr_debug.c,v 1.22 2015/10/28 21:38:45 eric Exp $ */ +/* $OpenBSD: asr_debug.c,v 1.23 2017/02/17 22:24:45 eric Exp $ */ /* * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> * @@ -24,6 +24,7 @@ #include <asr.h> #include <resolv.h> +#include <string.h> #include "asr_private.h" @@ -177,7 +178,7 @@ _asr_dump_packet(FILE *f, const void *data, size_t len) _asr_unpack_init(&p, data, len); if (_asr_unpack_header(&p, &h) == -1) { - fprintf(f, ";; BAD PACKET: %s\n", p.err); + fprintf(f, ";; BAD PACKET: %s\n", strerror(p.err)); return; } @@ -215,7 +216,7 @@ _asr_dump_packet(FILE *f, const void *data, size_t len) error: if (p.err) fprintf(f, ";; ERROR AT OFFSET %zu/%zu: %s\n", p.offset, p.len, - p.err); + strerror(p.err)); } const char * diff --git a/lib/libc/asr/asr_private.h b/lib/libc/asr/asr_private.h index 832e59cb39b..1bee3d9bde9 100644 --- a/lib/libc/asr/asr_private.h +++ b/lib/libc/asr/asr_private.h @@ -1,4 +1,4 @@ -/* $OpenBSD: asr_private.h,v 1.40 2016/12/18 01:34:51 krw Exp $ */ +/* $OpenBSD: asr_private.h,v 1.41 2017/02/17 22:24:45 eric Exp $ */ /* * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> * @@ -34,14 +34,14 @@ struct asr_pack { char *buf; size_t len; size_t offset; - const char *err; + int err; }; struct asr_unpack { const char *buf; size_t len; size_t offset; - const char *err; + int err; }; struct asr_dns_header { diff --git a/lib/libc/asr/asr_utils.c b/lib/libc/asr/asr_utils.c index 44a89114f4a..835d5dfb448 100644 --- a/lib/libc/asr/asr_utils.c +++ b/lib/libc/asr/asr_utils.c @@ -1,4 +1,4 @@ -/* $OpenBSD: asr_utils.c,v 1.13 2015/09/09 15:49:34 deraadt Exp $ */ +/* $OpenBSD: asr_utils.c,v 1.14 2017/02/17 22:24:45 eric Exp $ */ /* * Copyright (c) 2009-2012 Eric Faurot <eric@faurot.net> * @@ -167,7 +167,7 @@ _asr_pack_init(struct asr_pack *pack, char *buf, size_t len) pack->buf = buf; pack->len = len; pack->offset = 0; - pack->err = NULL; + pack->err = 0; } void @@ -176,7 +176,7 @@ _asr_unpack_init(struct asr_unpack *unpack, const char *buf, size_t len) unpack->buf = buf; unpack->len = len; unpack->offset = 0; - unpack->err = NULL; + unpack->err = 0; } static int @@ -186,7 +186,7 @@ unpack_data(struct asr_unpack *p, void *data, size_t len) return (-1); if (p->len - p->offset < len) { - p->err = "too short"; + p->err = EOVERFLOW; return (-1); } @@ -240,11 +240,11 @@ unpack_dname(struct asr_unpack *p, char *dst, size_t max) e = dname_expand(p->buf, p->len, p->offset, &p->offset, dst, max); if (e == -1) { - p->err = "bad domain name"; + p->err = EINVAL; return (-1); } if (e < 0 || e > MAXDNAME) { - p->err = "domain name too long"; + p->err = ERANGE; return (-1); } @@ -292,7 +292,7 @@ _asr_unpack_rr(struct asr_unpack *p, struct asr_dns_rr *rr) return (-1); if (p->len - p->offset < rdlen) { - p->err = "too short"; + p->err = EOVERFLOW; return (-1); } @@ -350,7 +350,7 @@ _asr_unpack_rr(struct asr_unpack *p, struct asr_dns_rr *rr) /* make sure that the advertised rdlen is really ok */ if (p->offset - save_offset != rdlen) - p->err = "bad dlen"; + p->err = EINVAL; return (p->err) ? (-1) : (0); } @@ -362,7 +362,7 @@ pack_data(struct asr_pack *p, const void *data, size_t len) return (-1); if (p->len < p->offset + len) { - p->err = "no space"; + p->err = EOVERFLOW; return (-1); } |