lib: Fix some logic/error-checking code
Using `MAX(0, $x)` here is useless since we're comparing against an unsigned integer. Just unpack this and only subtract if it's safe to do so. Also, explicitly check for `fd >= 0` rather than just `!= -1` to be sure it's a valid fd. And finally, explicitly check the return value of `g_input_stream_read_all` as is done everywhere else in the tree and make it clear that we're purposely ignoring the return value of `_flush` here, but not in other places. Discovered by Coverity. Closes: #1692 Approved by: cgwalters
This commit is contained in:
1 parent
fcd31a195b
commit
968e8805b0
2 files changed
+7
-8
No files matched your search
@@ -262,10 +262,8 @@ data_read_cb (void *handle, void *buffer, size_t size)
|
||||
|
||||
g_return_val_if_fail (G_IS_INPUT_STREAM (input_stream), -1);
|
||||
|
||||
g_input_stream_read_all (input_stream, buffer, size,
|
||||
&bytes_read, NULL, &local_error);
|
||||
|
||||
if (local_error != NULL)
|
||||
if (!g_input_stream_read_all (input_stream, buffer, size,
|
||||
&bytes_read, NULL, &local_error))
|
||||
{
|
||||
set_errno_from_gio_error (local_error);
|
||||
g_clear_error (&local_error);
|
||||
@@ -287,7 +285,7 @@ data_write_cb (void *handle, const void *buffer, size_t size)
|
||||
if (g_output_stream_write_all (output_stream, buffer, size,
|
||||
&bytes_written, NULL, &local_error))
|
||||
{
|
||||
g_output_stream_flush (output_stream, NULL, &local_error);
|
||||
(void)g_output_stream_flush (output_stream, NULL, &local_error);
|
||||
}
|
||||
|
||||
if (local_error != NULL)
|
||||
|
||||
Reference in new issue
Block a user