GUnix{Input,Output}Stream: Only release cancelable poll-fd if we allocated it

Otherwise we get criticals a'la

 GLib-GIO-CRITICAL **: g_cancellable_release_fd: assertion `cancellable->priv->fd_refcount > 0' failed

when reading/writing to certain kinds of file descriptors.

Patch reviewed by Dan Winship on IRC.

Signed-off-by: David Zeuthen <davidz@redhat.com>
This commit is contained in:
David Zeuthen 2012-03-05 12:57:32 -05:00
parent b6f65ec940
commit 6e8caec6d9
2 changed files with 4 additions and 2 deletions

View File

@ -417,7 +417,8 @@ g_unix_input_stream_read (GInputStream *stream,
break;
}
g_cancellable_release_fd (cancellable);
if (nfds == 2)
g_cancellable_release_fd (cancellable);
return res;
}

View File

@ -403,7 +403,8 @@ g_unix_output_stream_write (GOutputStream *stream,
break;
}
g_cancellable_release_fd (cancellable);
if (nfds == 2)
g_cancellable_release_fd (cancellable);
return res;
}