      void Init(bool hi) 
      {
        for(int i = 0;i < 18;i++) {
          char string[5] = "xl00";
          string[1] = (hi)?('h'):('l');
          string[2] = (i / 10) + '0';
          string[3] = (i % 10) + '0';
          X[i].Init(string);
          string[0] = 'm';
          M[i].Init(string);
        }
      }
The software performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer.