summaryrefslogtreecommitdiff
path: root/src/vtestream-file.h
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-09-25 16:55:08 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-09-25 16:55:08 -0400
commit73aba0352cd8034f69178459fc58347cedc74ec7 (patch)
treea06d785ef265410bfe35cc8bede79689f3fb7e60 /src/vtestream-file.h
parentcc6df5b1ebeba74c8c96d897bb5e8400ba429407 (diff)
downloadvte-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.h9
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