diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2009-09-25 16:55:08 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2009-09-25 16:55:08 -0400 |
commit | 73aba0352cd8034f69178459fc58347cedc74ec7 (patch) | |
tree | a06d785ef265410bfe35cc8bede79689f3fb7e60 /src/vtestream-file.h | |
parent | cc6df5b1ebeba74c8c96d897bb5e8400ba429407 (diff) | |
download | vte-73aba0352cd8034f69178459fc58347cedc74ec7.tar.gz |
Bug 596365 - libvte crashes when issueing 'reset' in a terminal
Diffstat (limited to 'src/vtestream-file.h')
-rw-r--r-- | src/vtestream-file.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vtestream-file.h b/src/vtestream-file.h index 1fca5651..1701af3c 100644 --- a/src/vtestream-file.h +++ b/src/vtestream-file.h @@ -27,7 +27,8 @@ _xread (int fd, char *data, gsize len) { gsize ret, total = 0; - g_assert (fd || !len); + if (G_UNLIKELY (len && !fd)) + return 0; while (len) { ret = read (fd, data, len); @@ -73,7 +74,8 @@ _xtruncate (gint fd, gsize offset) { int ret; - g_assert (fd || !offset); + if (G_UNLIKELY (!fd)) + return; do { ret = ftruncate (fd, offset); @@ -224,8 +226,7 @@ _vte_file_stream_new_page (VteStream *astream) if (stream->fd[0]) stream->offset[0] += lseek (stream->fd[0], 0, SEEK_END); _vte_file_stream_swap_fds (stream); - if (stream->fd[0]) - _xtruncate (stream->fd[0], 0); + _xtruncate (stream->fd[0], 0); } static gsize |