WL#13534: Update bundled libedit to 20190324-3.1
Affects: Server-8.0 — Status: Complete
Update bundled libedit in MySQL to 20190324-3.1. Current version is some years old. There is a number of bugs fixed by this upgrade: 20770875, 22332089, 22930525, 24432325, 27433491, 27285445 and 28939380. See below for full report on this bugs. Wanted version is found here: https://thrysoee.dk/editline/ Download: https://thrysoee.dk/editline/libedit-20190324-3.1.tar.gz
FR.1: Work as before. Fr.2: The history should be backwards compatible with the previous history file. ========================================= Bugs effected by this WL: Bug#20770875 MISSING READLINE FEATURES WHEN BUILDING WITH EXTERNAL LIBEDIT LIBRARY Status: fix verified Bug#22332089 OFF BY ONE BUG IN LIBEDITLINE Status: ASAN and UBSAN testing done without any issues found Bug#22930525 MYSQL CLIENT CRASHES AFTER EDITING Status: fix verified Bug#24432325 CTRL-W IS BROKEN IN CLIENT Status: works as described here: https://www.mankier.com/7/editline when $ cat ~/.editrc mysql:bind -v is used. Bug#27433491 SEGMENTATION FAULT IF MULTIBYTE CHARACTER USED IN PROMPT STRING Status: fix verified Bug#27285445 CONTRIBUTION: OPENBSD BUILD FIX Status: fix verified by code inspection Bug#28939380 MYSQL CLIENT CRASHES IN LIBEDIT/TERMINAL.C Status: fix verified by code inspection BUG#89797 Memory Leak BUG#89798 Memory Leak https://bugs.mysql.com/bug.php?id=89797 https://bugs.mysql.com/bug.php?id=89798 Status: fixed, problematic code removed
Install the complete tarball (except some binaries which seem to be irrelevant) Look at .am and .ac files in the bundle, and implement similar build functionality in cmake. Look at mysql patches to the old libedit library. These are tagged with XXXMYSQL. Most of these patches are now irrelevant: adaptations to platforms no longer supported, or things which have been fixed upstream. The only mysql patch which seems to be relevant is Bug#11757855 49967: BUILT-IN LIBEDIT DOESN'T READ .EDITRC ON LINUX The new libedit library does have configure code, and C macros to use secure_getenv() if it is available, but the actual code in src/el.c does not use it. So we do something similar to the patch for Bug#11757855 49967, and fall back to using getuid() geteuid() getgid() getegid() instead of issetugid()
Copyright (c) 2000, 2021, Oracle Corporation and/or its affiliates. All rights reserved.