summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/stdlib/atexit.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/libc/stdlib/atexit.c b/libc/stdlib/atexit.c
index 20195fa96..5079692af 100644
--- a/libc/stdlib/atexit.c
+++ b/libc/stdlib/atexit.c
@@ -15,7 +15,12 @@
#include <errno.h>
/* ATEXIT.H */
-#define MAXONEXIT 20 /* AIUI Posix requires 10 */
+
+/*
+ * NOTE!!! The following should match the value returned by
+ * by sysconf(_SC_ATEXIT_MAX) in unistd/sysconf.c
+ */
+#define MAXATEXIT 20 /* AIUI Posix requires 10 */
typedef void (*vfuncp) (void);
@@ -23,7 +28,7 @@ extern vfuncp __cleanup;
extern void __do_exit();
extern void _exit __P((int __status)) __attribute__ ((__noreturn__));
-extern vfuncp __atexit_table[MAXONEXIT];
+extern vfuncp __atexit_table[MAXATEXIT];
extern int __atexit_count;
/* End ATEXIT.H */
@@ -31,7 +36,7 @@ extern int __atexit_count;
#ifdef L_atexit
int atexit(vfuncp ptr)
{
- if ((__atexit_count < 0) || (__atexit_count >= MAXONEXIT)) {
+ if ((__atexit_count < 0) || (__atexit_count >= MAXATEXIT)) {
errno = ENOMEM;
return -1;
}
@@ -42,7 +47,7 @@ int atexit(vfuncp ptr)
return 0;
}
-vfuncp __atexit_table[MAXONEXIT];
+vfuncp __atexit_table[MAXATEXIT];
int __atexit_count = 0;
void __do_exit(int rv)