summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/malloc.c
diff options
context:
space:
mode:
authorderaadt <>2025-05-23 00:40:05 +0000
committerderaadt <>2025-05-23 00:40:05 +0000
commitdb3d36558deff54e8a47e96933acd4543d7eb05f (patch)
treeb340c64feaff7828e767291850aba4b7afa291a5 /src/lib/libc/stdlib/malloc.c
parentd6d6b23a49d21d2881e12b770fba4750c19047db (diff)
downloadopenbsd-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.c8
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
267char *malloc_options; /* compile-time options */ 267/* compile-time options */
268const char *const malloc_options __attribute__((weak));
268 269
269static __dead void wrterror(struct dir_info *d, char *msg, ...) 270static __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)
501static void 502static void
502omalloc_init(void) 503omalloc_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;