diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/man/d2i_ASN1_OBJECT.3 | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/src/lib/libcrypto/man/d2i_ASN1_OBJECT.3 b/src/lib/libcrypto/man/d2i_ASN1_OBJECT.3 index 2f428724d5..913140b30f 100644 --- a/src/lib/libcrypto/man/d2i_ASN1_OBJECT.3 +++ b/src/lib/libcrypto/man/d2i_ASN1_OBJECT.3 | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | .\" $OpenBSD: d2i_ASN1_OBJECT.3,v 1.11 2021/12/08 13:21:04 schwarze Exp $ | 1 | .\" $OpenBSD: d2i_ASN1_OBJECT.3,v 1.12 2022/03/29 17:41:20 schwarze Exp $ |
| 2 | .\" OpenSSL 05ea606a May 20 20:52:46 2016 -0400 | ||
| 3 | .\" | 2 | .\" |
| 4 | .\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org> | 3 | .\" Copyright (c) 2017, 2022 Ingo Schwarze <schwarze@openbsd.org> |
| 5 | .\" | 4 | .\" |
| 6 | .\" Permission to use, copy, modify, and distribute this software for any | 5 | .\" Permission to use, copy, modify, and distribute this software for any |
| 7 | .\" purpose with or without fee is hereby granted, provided that the above | 6 | .\" purpose with or without fee is hereby granted, provided that the above |
| @@ -15,7 +14,7 @@ | |||
| 15 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 14 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| 16 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| 17 | .\" | 16 | .\" |
| 18 | .Dd $Mdocdate: December 8 2021 $ | 17 | .Dd $Mdocdate: March 29 2022 $ |
| 19 | .Dt D2I_ASN1_OBJECT 3 | 18 | .Dt D2I_ASN1_OBJECT 3 |
| 20 | .Os | 19 | .Os |
| 21 | .Sh NAME | 20 | .Sh NAME |
| @@ -42,32 +41,36 @@ These functions decode and encode ASN.1 object identifiers. | |||
| 42 | For details about the semantics, examples, caveats, and bugs, see | 41 | For details about the semantics, examples, caveats, and bugs, see |
| 43 | .Xr ASN1_item_d2i 3 . | 42 | .Xr ASN1_item_d2i 3 . |
| 44 | .Pp | 43 | .Pp |
| 44 | The LibreSSL implementation of | ||
| 45 | .Fn d2i_ASN1_OBJECT | ||
| 46 | always calls | ||
| 47 | .Xr ASN1_OBJECT_free 3 | ||
| 48 | if an existing object is passed in via | ||
| 49 | .Fa val_out | ||
| 50 | and it always creates a new object from scratch. | ||
| 51 | Other implementations may attempt to reuse an existing object, | ||
| 52 | which is fragile and prone to bugs. | ||
| 53 | Consequently, always passing | ||
| 54 | .Dv NULL | ||
| 55 | for the | ||
| 56 | .Fa val_out | ||
| 57 | argument is recommended. | ||
| 58 | .Pp | ||
| 45 | The objects returned from | 59 | The objects returned from |
| 46 | .Fn d2i_ASN1_OBJECT | 60 | .Fn d2i_ASN1_OBJECT |
| 47 | and the data contained in them are always marked as dynamically | 61 | and the data contained in them are always marked as dynamically |
| 48 | allocated, so when they are no longer needed, | 62 | allocated, so when they are no longer needed, |
| 49 | .Xr ASN1_OBJECT_free 3 | 63 | .Xr ASN1_OBJECT_free 3 |
| 50 | can be called on them. | 64 | can be called on them. |
| 51 | .Pp | ||
| 52 | If reusing an existing object is attempted but the | ||
| 53 | .Pf * Fa val_out | ||
| 54 | passed in points to an object that is not marked as dynamically | ||
| 55 | allocated, then the existing object is left untouched and | ||
| 56 | .Fn d2i_ASN1_OBJECT | ||
| 57 | behaves as if | ||
| 58 | .Pf * Fa val_out | ||
| 59 | would have been | ||
| 60 | .Dv NULL : | ||
| 61 | A new object is allocated and a pointer to it is both stored in | ||
| 62 | .Pf * Fa val_out | ||
| 63 | and returned. | ||
| 64 | .Sh RETURN VALUES | 65 | .Sh RETURN VALUES |
| 65 | .Fn d2i_ASN1_OBJECT | 66 | .Fn d2i_ASN1_OBJECT |
| 66 | returns an | 67 | returns a pointer to the new |
| 67 | .Vt ASN1_OBJECT | 68 | .Vt ASN1_OBJECT |
| 68 | object or | 69 | object or |
| 69 | .Dv NULL | 70 | .Dv NULL |
| 70 | if an error occurs. | 71 | if an error occurs. |
| 72 | With other implementations, it might return a pointer to the reused | ||
| 73 | .Vt ASN1_OBJECT . | ||
| 71 | .Pp | 74 | .Pp |
| 72 | .Fn i2d_ASN1_OBJECT | 75 | .Fn i2d_ASN1_OBJECT |
| 73 | returns the number of bytes successfully encoded | 76 | returns the number of bytes successfully encoded |
| @@ -101,7 +104,3 @@ on the returned object, and then | |||
| 101 | and | 104 | and |
| 102 | .Xr OBJ_nid2ln 3 | 105 | .Xr OBJ_nid2ln 3 |
| 103 | on the result. | 106 | on the result. |
| 104 | .Sh BUGS | ||
| 105 | When reusing a dynamically allocated object that contains dynamically | ||
| 106 | allocated names, the old names are not freed and the memory containing | ||
| 107 | them is leaked. | ||
