Adjust checks of logMessageInterval in received packet to prevent 1 of
type int being shifted by values >= 31.

Signed-off-by: Miroslav Lichvar <[email protected]>
---
 port.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/port.c b/port.c
index 428326e..ad9554f 100644
--- a/port.c
+++ b/port.c
@@ -140,9 +140,9 @@ static int msg_current(struct ptp_message *m, struct 
timespec now)
        t1 = m->ts.host.tv_sec * NSEC2SEC + m->ts.host.tv_nsec;
        t2 = now.tv_sec * NSEC2SEC + now.tv_nsec;
 
-       if (m->header.logMessageInterval < -63) {
+       if (m->header.logMessageInterval <= -31) {
                tmo = 0;
-       } else if (m->header.logMessageInterval > 31) {
+       } else if (m->header.logMessageInterval >= 31) {
                tmo = INT64_MAX;
        } else if (m->header.logMessageInterval < 0) {
                tmo = 4LL * NSEC2SEC / (1 << -m->header.logMessageInterval);
-- 
2.17.2



_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to