summaryrefslogtreecommitdiff
path: root/cmd-line-utils
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay.choubey@oracle.com>2011-04-27 17:24:10 +0530
committerNirbhay Choubey <nirbhay.choubey@oracle.com>2011-04-27 17:24:10 +0530
commitc08c4e1fd765fff8ae76b2e61b0e04f550228660 (patch)
treee9e2cc42651948d3b6b1150888598a14bbbcfd49 /cmd-line-utils
parent735bab72c51e0ff4ccf5fb688826e87931ee8fe2 (diff)
downloadmariadb-git-c08c4e1fd765fff8ae76b2e61b0e04f550228660.tar.gz
BUG#12329909 - BUILDING MYSQL WITH DEBUG SUPPORT
FAILS WITH LIBEDIT Fixed by checking the return value of the write() function calls and handling the open files and fd appropriately.
Diffstat (limited to 'cmd-line-utils')
-rw-r--r--cmd-line-utils/libedit/vi.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/cmd-line-utils/libedit/vi.c b/cmd-line-utils/libedit/vi.c
index d628f076a1d..beffc7b40b5 100644
--- a/cmd-line-utils/libedit/vi.c
+++ b/cmd-line-utils/libedit/vi.c
@@ -1012,8 +1012,10 @@ vi_histedit(EditLine *el, int c __attribute__((__unused__)))
if (fd < 0)
return CC_ERROR;
cp = el->el_line.buffer;
- write(fd, cp, el->el_line.lastchar - cp +0u);
- write(fd, "\n", 1);
+ if (write(fd, cp, el->el_line.lastchar - cp +0u) == -1)
+ goto error;
+ if (write(fd, "\n", 1) == -1)
+ goto error;
pid = fork();
switch (pid) {
case -1:
@@ -1041,6 +1043,12 @@ vi_histedit(EditLine *el, int c __attribute__((__unused__)))
unlink(tempfile);
/* return CC_REFRESH; */
return ed_newline(el, 0);
+
+/* XXXMYSQL: Avoid compiler warnings. */
+error:
+ close(fd);
+ unlink(tempfile);
+ return CC_ERROR;
}
/* vi_history_word():