diff options
| author | tb <> | 2022-01-08 21:36:39 +0000 |
|---|---|---|
| committer | tb <> | 2022-01-08 21:36:39 +0000 |
| commit | 1d65cb0d3a77508bfc0bdcbc93feeea4c4cb6c2a (patch) | |
| tree | 466830b7a7d27e0ddc854b19bef96adc5c6550cf /src/lib/libcrypto/objects/obj_dat.c | |
| parent | a86a04576d7e4fd3e48b1285a0a5593180210f5e (diff) | |
| download | openbsd-1d65cb0d3a77508bfc0bdcbc93feeea4c4cb6c2a.tar.gz openbsd-1d65cb0d3a77508bfc0bdcbc93feeea4c4cb6c2a.tar.bz2 openbsd-1d65cb0d3a77508bfc0bdcbc93feeea4c4cb6c2a.zip | |
Prepare to provide OBJ_length() and OBJ_get0_data()
OBJ_length() turns the int obj->length into a size_t, so add
an overflow check. While obj->length should never be negative,
who knows...
ok jsing
Diffstat (limited to 'src/lib/libcrypto/objects/obj_dat.c')
| -rw-r--r-- | src/lib/libcrypto/objects/obj_dat.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/lib/libcrypto/objects/obj_dat.c b/src/lib/libcrypto/objects/obj_dat.c index bcbc8cef85..4f7396f669 100644 --- a/src/lib/libcrypto/objects/obj_dat.c +++ b/src/lib/libcrypto/objects/obj_dat.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: obj_dat.c,v 1.44 2022/01/07 11:13:54 tb Exp $ */ | 1 | /* $OpenBSD: obj_dat.c,v 1.45 2022/01/08 21:36:39 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -816,3 +816,24 @@ OBJ_create(const char *oid, const char *sn, const char *ln) | |||
| 816 | free(buf); | 816 | free(buf); |
| 817 | return (ok); | 817 | return (ok); |
| 818 | } | 818 | } |
| 819 | |||
| 820 | size_t | ||
| 821 | OBJ_length(const ASN1_OBJECT *obj) | ||
| 822 | { | ||
| 823 | if (obj == NULL) | ||
| 824 | return 0; | ||
| 825 | |||
| 826 | if (obj->length < 0) | ||
| 827 | return 0; | ||
| 828 | |||
| 829 | return obj->length; | ||
| 830 | } | ||
| 831 | |||
| 832 | const unsigned char * | ||
| 833 | OBJ_get0_data(const ASN1_OBJECT *obj) | ||
| 834 | { | ||
| 835 | if (obj == NULL) | ||
| 836 | return NULL; | ||
| 837 | |||
| 838 | return obj->data; | ||
| 839 | } | ||
