Thread (12 messages) 12 messages, 3 authors, 2020-05-19

Re: [PATCH 2/2] restripe: fix ignoring return value of ‘read’

From: Jes Sorensen <hidden>
Date: 2020-05-18 17:50:23

On 5/18/20 1:32 PM, Guoqing Jiang wrote:
On 5/18/20 7:22 PM, Jes Sorensen wrote:
quoted
On 5/15/20 9:40 AM, Guoqing Jiang wrote:
quoted
Got below error when run "make everything".

restripe.c: In function ‘test_stripes’:
restripe.c:870:4: error: ignoring return value of ‘read’, declared
with attribute warn_unused_result [-Werror=unused-result]
     read(source[i], stripes[i], chunk_size);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix it by set the return value of ‘read’ to diskP, which should be
harmless since diskP will be set again before it is used.

Signed-off-by: Guoqing Jiang <redacted>
---
  restripe.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/restripe.c b/restripe.c
index 31b07e8..21c90f5 100644
--- a/restripe.c
+++ b/restripe.c
@@ -867,7 +867,11 @@ int test_stripes(int *source, unsigned long long
*offsets,
            for (i = 0 ; i < raid_disks ; i++) {
              lseek64(source[i], offsets[i]+start, 0);
-            read(source[i], stripes[i], chunk_size);
+            /*
+             * To resolve "ignoring return value of ‘read’", it
+             * should be harmless since diskP will be again later.
+             */
+            diskP = read(source[i], stripes[i], chunk_size);
It doesn't complain on Fedora 32, however checking the return value of
lseek64 and read is a good thing.

However what you have done is to just masking the return value and
throwing it away, is not OK. Please do it properly.
Yes, it is used to suppress the warning. And set the return value to a
new variable
could cause unused-but-set-variable, not sure if there is better way now.
The correct way is to check the return values and take appropriate
action if an error is returned.

Jes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help