summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perlio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/perlio.c b/perlio.c
index fa993ec673..30a40cb53b 100644
--- a/perlio.c
+++ b/perlio.c
@@ -2249,7 +2249,7 @@ perl_mutex PerlIO_mutex;
static void
S_more_refcounted_fds(pTHX_ const int new_fd) {
const int old_max = PL_perlio_fd_refcnt_size;
- const int new_max = 16 + (new_fd & 15);
+ const int new_max = 16 + (new_fd & ~15);
int *new_array;
PerlIO_debug("More fds - old=%d, need %d, new=%d\n",
@@ -2259,6 +2259,8 @@ S_more_refcounted_fds(pTHX_ const int new_fd) {
return;
}
+ assert (new_max > new_fd);
+
new_array
= PerlMemShared_realloc(PL_perlio_fd_refcnt, new_max * sizeof(int));