diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/bs_cbs.c | 3 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/bs_cbs.c | 3 | ||||
| -rw-r--r-- | src/regress/lib/libssl/bytestring/bytestringtest.c | 38 |
3 files changed, 41 insertions, 3 deletions
diff --git a/src/lib/libssl/bs_cbs.c b/src/lib/libssl/bs_cbs.c index ea31cfc530..d45353a890 100644 --- a/src/lib/libssl/bs_cbs.c +++ b/src/lib/libssl/bs_cbs.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bs_cbs.c,v 1.15 2015/06/20 01:21:51 doug Exp $ */ | 1 | /* $OpenBSD: bs_cbs.c,v 1.16 2015/06/23 05:58:28 doug Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014, Google Inc. | 3 | * Copyright (c) 2014, Google Inc. |
| 4 | * | 4 | * |
| @@ -36,6 +36,7 @@ void | |||
| 36 | CBS_dup(const CBS *cbs, CBS *out) | 36 | CBS_dup(const CBS *cbs, CBS *out) |
| 37 | { | 37 | { |
| 38 | CBS_init(out, CBS_data(cbs), CBS_len(cbs)); | 38 | CBS_init(out, CBS_data(cbs), CBS_len(cbs)); |
| 39 | out->initial_len = cbs->initial_len; | ||
| 39 | } | 40 | } |
| 40 | 41 | ||
| 41 | static int | 42 | static int |
diff --git a/src/lib/libssl/src/ssl/bs_cbs.c b/src/lib/libssl/src/ssl/bs_cbs.c index ea31cfc530..d45353a890 100644 --- a/src/lib/libssl/src/ssl/bs_cbs.c +++ b/src/lib/libssl/src/ssl/bs_cbs.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bs_cbs.c,v 1.15 2015/06/20 01:21:51 doug Exp $ */ | 1 | /* $OpenBSD: bs_cbs.c,v 1.16 2015/06/23 05:58:28 doug Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014, Google Inc. | 3 | * Copyright (c) 2014, Google Inc. |
| 4 | * | 4 | * |
| @@ -36,6 +36,7 @@ void | |||
| 36 | CBS_dup(const CBS *cbs, CBS *out) | 36 | CBS_dup(const CBS *cbs, CBS *out) |
| 37 | { | 37 | { |
| 38 | CBS_init(out, CBS_data(cbs), CBS_len(cbs)); | 38 | CBS_init(out, CBS_data(cbs), CBS_len(cbs)); |
| 39 | out->initial_len = cbs->initial_len; | ||
| 39 | } | 40 | } |
| 40 | 41 | ||
| 41 | static int | 42 | static int |
diff --git a/src/regress/lib/libssl/bytestring/bytestringtest.c b/src/regress/lib/libssl/bytestring/bytestringtest.c index d989868c85..3275e6f2c7 100644 --- a/src/regress/lib/libssl/bytestring/bytestringtest.c +++ b/src/regress/lib/libssl/bytestring/bytestringtest.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bytestringtest.c,v 1.7 2015/06/23 01:20:24 doug Exp $ */ | 1 | /* $OpenBSD: bytestringtest.c,v 1.8 2015/06/23 05:58:28 doug Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014, Google Inc. | 3 | * Copyright (c) 2014, Google Inc. |
| 4 | * | 4 | * |
| @@ -751,6 +751,41 @@ err: | |||
| 751 | return ret; | 751 | return ret; |
| 752 | } | 752 | } |
| 753 | 753 | ||
| 754 | static int | ||
| 755 | test_cbs_dup(void) | ||
| 756 | { | ||
| 757 | CBS data, check; | ||
| 758 | static const uint8_t input[] = {'f', 'o', 'o', 'b', 'a', 'r'}; | ||
| 759 | |||
| 760 | CBS_init(&data, input, sizeof(input)); | ||
| 761 | CHECK(CBS_len(&data) == 6); | ||
| 762 | CBS_dup(&data, &check); | ||
| 763 | CHECK(CBS_len(&check) == 6); | ||
| 764 | CHECK(CBS_data(&data) == CBS_data(&check)); | ||
| 765 | CHECK(CBS_skip(&data, 1)); | ||
| 766 | CHECK(CBS_len(&data) == 5); | ||
| 767 | CHECK(CBS_len(&check) == 6); | ||
| 768 | CHECK(CBS_data(&data) == CBS_data(&check) + 1); | ||
| 769 | CHECK(CBS_skip(&check, 1)); | ||
| 770 | CHECK(CBS_len(&data) == 5); | ||
| 771 | CHECK(CBS_len(&check) == 5); | ||
| 772 | CHECK(CBS_data(&data) == CBS_data(&check)); | ||
| 773 | CHECK(CBS_offset(&data) == 1); | ||
| 774 | CHECK(CBS_offset(&check) == 1); | ||
| 775 | |||
| 776 | CBS_init(&data, input, sizeof(input)); | ||
| 777 | CHECK(CBS_skip(&data, 5)); | ||
| 778 | CBS_dup(&data, &check); | ||
| 779 | CHECK(CBS_len(&data) == 1); | ||
| 780 | CHECK(CBS_len(&check) == 1); | ||
| 781 | CHECK(CBS_data(&data) == input + 5); | ||
| 782 | CHECK(CBS_data(&data) == CBS_data(&check)); | ||
| 783 | CHECK(CBS_offset(&data) == 5); | ||
| 784 | CHECK(CBS_offset(&check) == 5); | ||
| 785 | |||
| 786 | return 1; | ||
| 787 | } | ||
| 788 | |||
| 754 | int | 789 | int |
| 755 | main(void) | 790 | main(void) |
| 756 | { | 791 | { |
| @@ -772,6 +807,7 @@ main(void) | |||
| 772 | failed |= !test_get_optional_asn1_bool(); | 807 | failed |= !test_get_optional_asn1_bool(); |
| 773 | failed |= !test_offset(); | 808 | failed |= !test_offset(); |
| 774 | failed |= !test_write_bytes(); | 809 | failed |= !test_write_bytes(); |
| 810 | failed |= !test_cbs_dup(); | ||
| 775 | 811 | ||
| 776 | if (!failed) | 812 | if (!failed) |
| 777 | printf("PASS\n"); | 813 | printf("PASS\n"); |
