28 lines
993 B
Diff
28 lines
993 B
Diff
|
commit ae4d44b1d501421ad9a3af95279b8f4d1546f1ce
|
||
|
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||
|
Date: Tue Sep 3 14:58:33 2024 -0400
|
||
|
|
||
|
libio: Attempt wide backup free only for non-legacy code
|
||
|
|
||
|
_wide_data and _mode are not available in legacy code, so do not attempt
|
||
|
to free the wide backup buffer in legacy code.
|
||
|
|
||
|
Resolves: BZ #32137 and BZ #27821
|
||
|
|
||
|
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||
|
Reviewed-by: Florian Weimer <fweimer@redhat.com>
|
||
|
|
||
|
diff --git a/libio/genops.c b/libio/genops.c
|
||
|
index b5fc53fd1ef6e911..99ef9d03505f3238 100644
|
||
|
--- a/libio/genops.c
|
||
|
+++ b/libio/genops.c
|
||
|
@@ -799,7 +799,7 @@ _IO_unbuffer_all (void)
|
||
|
/* Free up the backup area if it was ever allocated. */
|
||
|
if (_IO_have_backup (fp))
|
||
|
_IO_free_backup_area (fp);
|
||
|
- if (fp->_mode > 0 && _IO_have_wbackup (fp))
|
||
|
+ if (!legacy && fp->_mode > 0 && _IO_have_wbackup (fp))
|
||
|
_IO_free_wbackup_area (fp);
|
||
|
|
||
|
if (! (fp->_flags & _IO_UNBUFFERED)
|