InputEngineContext::InputEngineContext(const std::string& ime) : ime_spec(ime) {
  std::string id = GetIdFromImeSpec(ime_spec);
  if (rulebased::Engine::IsImeSupported(id)) {
    engine = std::make_unique<rulebased::Engine>();
    engine->Activate(id);
  }
}

The product reads data past the end, or before the beginning, of the intended buffer.