diff options
author | deraadt <> | 2025-05-23 00:40:05 +0000 |
---|---|---|
committer | deraadt <> | 2025-05-23 00:40:05 +0000 |
commit | db3d36558deff54e8a47e96933acd4543d7eb05f (patch) | |
tree | b340c64feaff7828e767291850aba4b7afa291a5 /src/lib/libc/stdlib/malloc.c | |
parent | d6d6b23a49d21d2881e12b770fba4750c19047db (diff) | |
download | openbsd-db3d36558deff54e8a47e96933acd4543d7eb05f.tar.gz openbsd-db3d36558deff54e8a47e96933acd4543d7eb05f.tar.bz2 openbsd-db3d36558deff54e8a47e96933acd4543d7eb05f.zip |
When commons were deprecated, noone noticed that malloc_options in static
binaries had become unlinkable. Change the libc definition to weak to solve
that, and to "const char * const" so that noone will try to set it late.
It must be stable before the first malloc() call, which could be before
main()...
discussion with otto, kettenis, tedu
Diffstat (limited to 'src/lib/libc/stdlib/malloc.c')
-rw-r--r-- | src/lib/libc/stdlib/malloc.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index cad8e5d6a1..fa36a3a7f3 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc.c,v 1.297 2024/09/20 02:00:46 jsg Exp $ */ | 1 | /* $OpenBSD: malloc.c,v 1.298 2025/05/23 00:40:05 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2008, 2010, 2011, 2016, 2023 Otto Moerbeek <otto@drijf.net> | 3 | * Copyright (c) 2008, 2010, 2011, 2016, 2023 Otto Moerbeek <otto@drijf.net> |
4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> | 4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> |
@@ -264,7 +264,8 @@ static union { | |||
264 | __attribute__((section(".openbsd.mutable"))); | 264 | __attribute__((section(".openbsd.mutable"))); |
265 | #define mopts malloc_readonly.mopts | 265 | #define mopts malloc_readonly.mopts |
266 | 266 | ||
267 | char *malloc_options; /* compile-time options */ | 267 | /* compile-time options */ |
268 | const char *const malloc_options __attribute__((weak)); | ||
268 | 269 | ||
269 | static __dead void wrterror(struct dir_info *d, char *msg, ...) | 270 | static __dead void wrterror(struct dir_info *d, char *msg, ...) |
270 | __attribute__((__format__ (printf, 2, 3))); | 271 | __attribute__((__format__ (printf, 2, 3))); |
@@ -501,7 +502,8 @@ omalloc_parseopt(char opt) | |||
501 | static void | 502 | static void |
502 | omalloc_init(void) | 503 | omalloc_init(void) |
503 | { | 504 | { |
504 | char *p, *q, b[16]; | 505 | const char *p; |
506 | char *q, b[16]; | ||
505 | int i, j; | 507 | int i, j; |
506 | const int mib[2] = { CTL_VM, VM_MALLOC_CONF }; | 508 | const int mib[2] = { CTL_VM, VM_MALLOC_CONF }; |
507 | size_t sb; | 509 | size_t sb; |