diff options
| author | doug <> | 2014-10-23 05:48:40 +0000 |
|---|---|---|
| committer | doug <> | 2014-10-23 05:48:40 +0000 |
| commit | 29aad45bff189f574f5a2afddabe28b0d8cd7b16 (patch) | |
| tree | e53c5e5ee1b95a416e81b3f20d5cac681cc1bb5c /src/lib/libc/stdlib/malloc.3 | |
| parent | 94bf30fecb343725db81902304e3d1d1e2707172 (diff) | |
| download | openbsd-29aad45bff189f574f5a2afddabe28b0d8cd7b16.tar.gz openbsd-29aad45bff189f574f5a2afddabe28b0d8cd7b16.tar.bz2 openbsd-29aad45bff189f574f5a2afddabe28b0d8cd7b16.zip | |
Save space in man page: err() -> errc() and combine vars.
Suggested by millert@ and schwarze@.
OK schwarze@, millert@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libc/stdlib/malloc.3 | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/lib/libc/stdlib/malloc.3 b/src/lib/libc/stdlib/malloc.3 index caf1da2207..2647434eaa 100644 --- a/src/lib/libc/stdlib/malloc.3 +++ b/src/lib/libc/stdlib/malloc.3 | |||
| @@ -30,9 +30,9 @@ | |||
| 30 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 30 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 31 | .\" SUCH DAMAGE. | 31 | .\" SUCH DAMAGE. |
| 32 | .\" | 32 | .\" |
| 33 | .\" $OpenBSD: malloc.3,v 1.82 2014/10/22 05:19:27 doug Exp $ | 33 | .\" $OpenBSD: malloc.3,v 1.83 2014/10/23 05:48:40 doug Exp $ |
| 34 | .\" | 34 | .\" |
| 35 | .Dd $Mdocdate: October 22 2014 $ | 35 | .Dd $Mdocdate: October 23 2014 $ |
| 36 | .Dt MALLOC 3 | 36 | .Dt MALLOC 3 |
| 37 | .Os | 37 | .Os |
| 38 | .Sh NAME | 38 | .Sh NAME |
| @@ -303,15 +303,13 @@ If | |||
| 303 | .Fn malloc | 303 | .Fn malloc |
| 304 | must be used with multiplication, be sure to test for overflow: | 304 | must be used with multiplication, be sure to test for overflow: |
| 305 | .Bd -literal -offset indent | 305 | .Bd -literal -offset indent |
| 306 | size_t size; | 306 | size_t num, size; |
| 307 | size_t num; | ||
| 308 | \&... | 307 | \&... |
| 309 | 308 | ||
| 310 | /* Check for size_t overflow */ | 309 | /* Check for size_t overflow */ |
| 311 | if (size && num > SIZE_MAX / size) { | 310 | if (size && num > SIZE_MAX / size) |
| 312 | errno = EOVERFLOW; | 311 | errc(1, EOVERFLOW, "overflow"); |
| 313 | err(1, "overflow"); | 312 | |
| 314 | } | ||
| 315 | if ((p = malloc(size * num)) == NULL) | 313 | if ((p = malloc(size * num)) == NULL) |
| 316 | err(1, "malloc"); | 314 | err(1, "malloc"); |
| 317 | .Ed | 315 | .Ed |
| @@ -319,21 +317,16 @@ if ((p = malloc(size * num)) == NULL) | |||
| 319 | The above test is not sufficient in all cases. | 317 | The above test is not sufficient in all cases. |
| 320 | For example, multiplying ints requires a different set of checks: | 318 | For example, multiplying ints requires a different set of checks: |
| 321 | .Bd -literal -offset indent | 319 | .Bd -literal -offset indent |
| 322 | int size; | 320 | int num, size; |
| 323 | int num; | ||
| 324 | \&... | 321 | \&... |
| 325 | 322 | ||
| 326 | /* Avoid invalid requests */ | 323 | /* Avoid invalid requests */ |
| 327 | if (size < 0 || num < 0) { | 324 | if (size < 0 || num < 0) |
| 328 | errno = EOVERFLOW; | 325 | errc(1, EOVERFLOW, "overflow"); |
| 329 | err(1, "overflow"); | ||
| 330 | } | ||
| 331 | 326 | ||
| 332 | /* Check for signed int overflow */ | 327 | /* Check for signed int overflow */ |
| 333 | if (size && num > INT_MAX / size) { | 328 | if (size && num > INT_MAX / size) |
| 334 | errno = EOVERFLOW; | 329 | errc(1, EOVERFLOW, "overflow"); |
| 335 | err(1, "overflow"); | ||
| 336 | } | ||
| 337 | 330 | ||
| 338 | if ((p = malloc(size * num)) == NULL) | 331 | if ((p = malloc(size * num)) == NULL) |
| 339 | err(1, "malloc"); | 332 | err(1, "malloc"); |
