of print statements • Packets were getting corrupted • Packet was corrupted despite no assignment statement to the variable between print statements Scenario #1 - continued
first eight matter ◦ DataPktTx and DataPktRx are two distinct variables • System had a two pass compiler ◦ Pascal compiler ◦ Fortran linker Scenario #1 - continued (2)
first eight matter ◦ DataPktTx and DataPktRx are two distinct variables • System had a two pass compiler ◦ Pascal compiler ◦ Fortran linker • Fortran only allows six character variable names Scenario #1 - continued (2)
first eight matter ◦ DataPktTx and DataPktRx are two distinct variables • System had a two pass compiler ◦ Pascal compiler ◦ Fortran linker • Fortran only allows six character variable names ◦ Linker mapped the two variables on top of each other Scenario #1 - continued (2)
bytes ◦ QA test had deliberately misaligned the data ▪ Not supposed to be on 32 bit boundary Scenario #2 - continued 32 bit words aligned on "normal" four byte boundaries in a 32 byte cache line
suspect. Eventually you may have to go there. • Start normally, but eventually be as skeptical as a security expert • Tools are not perfect and are not totally trustworthy Conclusions