jhash.h und valgrind
Ich bin ja ein großer Freund von valgrind. Sowohl um bei Software die in Produktion gehen muss mal auf memory leaks zu prüfen wie auch auf Speicherzugriffe an willkürlichen Adressen. Oder auch nur Nutzung von uninitialisiertem Speicher.
Jetzt habe ich hier mir Userspace Read Copy Update und den hashes rumgespielt. Dort wird als hash der jhash empfohlen. Also nehmen wir den halt - Hauptsache simple und schnell.
Nur Valgrind spuckt immer ins Essen weil jhash offensichtlich aus Geschwindigkeits optimierungsgründen auch mal gerne auf Speicher nach dem eigentlichen Alloc zugreift, d.h. es wird 4 oder 8 byte weise zugegriffen.
D.h. habe ich einen 7 byte langen Speicherbereich dann wird auf byte 8 auch noch zugegriffen.
Mal in den code sehen und was entdecken meine entzündeten Augen:
#ifndef VALGRIND
Ich möchte Kotzen. Was hat denn das mit valgrind zu tun? Wer garantiert denn das jhash nicht auch auf die nächte Page zugreift die möglicherweise gar nicht zu meinem heap gehört? Dann stirbt mir meine Software mit einem SIGBUS weil keine Page an die Stelle gemappt ist.