diff options
author | Nirbhay Choubey <nirbhay.choubey@oracle.com> | 2011-04-27 17:24:10 +0530 |
---|---|---|
committer | Nirbhay Choubey <nirbhay.choubey@oracle.com> | 2011-04-27 17:24:10 +0530 |
commit | c08c4e1fd765fff8ae76b2e61b0e04f550228660 (patch) | |
tree | e9e2cc42651948d3b6b1150888598a14bbbcfd49 /cmd-line-utils | |
parent | 735bab72c51e0ff4ccf5fb688826e87931ee8fe2 (diff) | |
download | mariadb-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.c | 12 |
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(): |