v3_asid.c (openssl-1.1.1o) | : | v3_asid.c (openssl-1.1.1p) | ||
---|---|---|---|---|
/* | /* | |||
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. | * Copyright 2006-2022 The OpenSSL Project Authors. All Rights Reserved. | |||
* | * | |||
* Licensed under the OpenSSL license (the "License"). You may not use | * Licensed under the OpenSSL license (the "License"). You may not use | |||
* this file except in compliance with the License. You can obtain a copy | * this file except in compliance with the License. You can obtain a copy | |||
* in the file LICENSE in the source distribution or at | * in the file LICENSE in the source distribution or at | |||
* https://www.openssl.org/source/license.html | * https://www.openssl.org/source/license.html | |||
*/ | */ | |||
/* | /* | |||
* Implementation of RFC 3779 section 3.2. | * Implementation of RFC 3779 section 3.2. | |||
*/ | */ | |||
skipping to change at line 703 | skipping to change at line 703 | |||
} | } | |||
return 1; | return 1; | |||
} | } | |||
/* | /* | |||
* Test whether a is a subset of b. | * Test whether a is a subset of b. | |||
*/ | */ | |||
int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b) | int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b) | |||
{ | { | |||
return (a == NULL || | int subset; | |||
a == b || | ||||
(b != NULL && | if (a == NULL || a == b) | |||
!X509v3_asid_inherits(a) && | return 1; | |||
!X509v3_asid_inherits(b) && | ||||
asid_contains(b->asnum->u.asIdsOrRanges, | if (b == NULL) | |||
a->asnum->u.asIdsOrRanges) && | return 0; | |||
asid_contains(b->rdi->u.asIdsOrRanges, | ||||
a->rdi->u.asIdsOrRanges))); | if (X509v3_asid_inherits(a) || X509v3_asid_inherits(b)) | |||
return 0; | ||||
subset = a->asnum == NULL | ||||
|| (b->asnum != NULL | ||||
&& asid_contains(b->asnum->u.asIdsOrRanges, | ||||
a->asnum->u.asIdsOrRanges)); | ||||
if (!subset) | ||||
return 0; | ||||
return a->rdi == NULL | ||||
|| (b->rdi != NULL | ||||
&& asid_contains(b->rdi->u.asIdsOrRanges, | ||||
a->rdi->u.asIdsOrRanges)); | ||||
} | } | |||
/* | /* | |||
* Validation error handling via callback. | * Validation error handling via callback. | |||
*/ | */ | |||
#define validation_err(_err_) \ | #define validation_err(_err_) \ | |||
do { \ | do { \ | |||
if (ctx != NULL) { \ | if (ctx != NULL) { \ | |||
ctx->error = _err_; \ | ctx->error = _err_; \ | |||
ctx->error_depth = i; \ | ctx->error_depth = i; \ | |||
End of changes. 2 change blocks. | ||||
10 lines changed or deleted | 23 lines changed or added |