Joel Sherrill created an issue: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5083

Assignee: Joel Sherrill

## Summary

After analysis by myself and @opticron, we realised that this can be fixed by 
negating the shift_cnt and shifting the other direction. Per git blame, this 
file was written by Thomas Doerfler and merged in 2008-07-11. This particular 
area of code is unchanged since then.

CID 1399704

```
245        }
        28. Condition shift_cnt < 0, taking true branch.
        29. cond_at_most: Checking shift_cnt < 0 implies that shift_cnt may be 
up to -1 on the true branch.
246        if (shift_cnt < 0) {
        
CID 1399704: (#1 of 1): Bad bit shift operation (BAD_SHIFT)
30. negative_shift: In expression byte >> shift_cnt, shifting by a negative 
amount has undefined behavior. The shift amount, shift_cnt, is no more than -1.
247          byte = byte >> shift_cnt;
248        }
249        else if (shift_cnt > 0) {
250          byte = byte >> shift_cnt;
251        }
252        ((unsigned char *)(dst->latin1[glyph_idx]->bitmap))[bcnt] = byte;
253      }
```

## Steps to reproduce

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5083
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to