[DragonFlyBSD - Bug #3060] sys/boot/common/module.c:247: logical fault ?

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Tue Sep 19 05:50:17 PDT 2017


Issue #3060 has been updated by lubos.


I think the second condition should be checking `crc' instead, like this:

diff --git a/sys/boot/common/module.c b/sys/boot/common/module.c
index 449e64d..24ff89e 100644
--- a/sys/boot/common/module.c
+++ b/sys/boot/common/module.c
@@ -251,7 +251,7 @@ command_crc(int argc, char *argv[])
                                name, strerror(errno));
                        break;
                }
-               if (got == 0)
+               if (crc == 0)
                        crc = iscsi_crc32(buf, got);
                else
                        crc = iscsi_crc32_ext(buf, got, crc);

----------------------------------------
Bug #3060: sys/boot/common/module.c:247: logical fault ?
http://bugs.dragonflybsd.org/issues/3060#change-13210

* Author: dcb
* Status: New
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
dragonfly/sys/boot/common/module.c:247] -> [dragonfly/sys/boot/common/module.c:254]: (warning) Identical condition 'got==0', second condition is always false

Source code is

                got = read(fd, buf, 8192);
                if (got == 0)
                        break;
                if (got < 0) {
                        printf("error reading '%s': %s\n",
                                name, strerror(errno));
                        break;
                }
                if (got == 0)
                        crc = iscsi_crc32(buf, got);
                else
                        crc = iscsi_crc32_ext(buf, got, crc);

So it looks like the crc code is never executed.




-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



More information about the Bugs mailing list