You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
From 81169c06a76f62ff987ed990ac910c2ae08b3f91 Mon Sep 17 00:00:00 2001 |
|
From: Karl Williamson <khw@cpan.org> |
|
Date: Tue, 10 Mar 2020 15:19:57 -0600 |
|
Subject: [PATCH] reentr.c: Buffer sizes for asctime_r,ctime_r are small |
|
MIME-Version: 1.0 |
|
Content-Type: text/plain; charset=UTF-8 |
|
Content-Transfer-Encoding: 8bit |
|
|
|
The needed sizes of these are stated in the man pages, and are much |
|
smaller than were being allocated. |
|
|
|
Signed-off-by: Petr Písař <ppisar@redhat.com> |
|
--- |
|
reentr.c | 4 ++-- |
|
regen/reentr.pl | 5 ++++- |
|
2 files changed, 6 insertions(+), 3 deletions(-) |
|
|
|
diff --git a/reentr.c b/reentr.c |
|
index 8ddda7bfc0..8438c8f90f 100644 |
|
--- a/reentr.c |
|
+++ b/reentr.c |
|
@@ -52,14 +52,14 @@ Perl_reentrant_size(pTHX) { |
|
# define REENTRANTUSUALSIZE 4096 /* Make something up. */ |
|
|
|
# ifdef HAS_ASCTIME_R |
|
- PL_reentrant_buffer->_asctime_size = REENTRANTSMALLSIZE; |
|
+ PL_reentrant_buffer->_asctime_size = 26; |
|
# endif /* HAS_ASCTIME_R */ |
|
|
|
# ifdef HAS_CRYPT_R |
|
# endif /* HAS_CRYPT_R */ |
|
|
|
# ifdef HAS_CTIME_R |
|
- PL_reentrant_buffer->_ctime_size = REENTRANTSMALLSIZE; |
|
+ PL_reentrant_buffer->_ctime_size = 26; |
|
# endif /* HAS_CTIME_R */ |
|
|
|
# ifdef HAS_GETGRNAM_R |
|
diff --git a/regen/reentr.pl b/regen/reentr.pl |
|
index f5788c7ad9..94721e9dec 100644 |
|
--- a/regen/reentr.pl |
|
+++ b/regen/reentr.pl |
|
@@ -495,8 +495,11 @@ for my $func (@seenf) { |
|
char* _${func}_buffer; |
|
size_t _${func}_size; |
|
EOF |
|
+ my $size = ($func =~ /^(asctime|ctime)$/) |
|
+ ? 26 |
|
+ : "REENTRANTSMALLSIZE"; |
|
push @size, <<EOF; |
|
- PL_reentrant_buffer->_${func}_size = REENTRANTSMALLSIZE; |
|
+ PL_reentrant_buffer->_${func}_size = $size; |
|
EOF |
|
pushinitfree $func; |
|
pushssif $endif; |
|
-- |
|
2.25.4 |
|
|
|
|