mirror of
https://github.com/tmux/tmux.git
synced 2026-05-23 13:20:14 +00:00
Report file open errors more sensibly, reported by Meriel Luna
Mittelbach in GitHub issue 5081.
This commit is contained in:
8
file.c
8
file.c
@@ -402,6 +402,10 @@ file_read(struct client *c, const char *path, client_file_cb cb, void *cbdata)
|
||||
}
|
||||
for (;;) {
|
||||
size = fread(buffer, 1, sizeof buffer, f);
|
||||
if (ferror(f)) {
|
||||
cf->error = errno;
|
||||
goto done;
|
||||
}
|
||||
if (evbuffer_add(cf->buffer, buffer, size) != 0) {
|
||||
cf->error = ENOMEM;
|
||||
goto done;
|
||||
@@ -674,7 +678,7 @@ file_write_close(struct client_files *files, struct imsg *imsg)
|
||||
|
||||
/* Client file read error callback. */
|
||||
static void
|
||||
file_read_error_callback(__unused struct bufferevent *bev, __unused short what,
|
||||
file_read_error_callback(__unused struct bufferevent *bev, short what,
|
||||
void *arg)
|
||||
{
|
||||
struct client_file *cf = arg;
|
||||
@@ -683,7 +687,7 @@ file_read_error_callback(__unused struct bufferevent *bev, __unused short what,
|
||||
log_debug("read error file %d", cf->stream);
|
||||
|
||||
msg.stream = cf->stream;
|
||||
msg.error = 0;
|
||||
msg.error = (what & EVBUFFER_ERROR) ? EIO : 0;
|
||||
proc_send(cf->peer, MSG_READ_DONE, -1, &msg, sizeof msg);
|
||||
|
||||
bufferevent_free(cf->event);
|
||||
|
||||
Reference in New Issue
Block a user