Der Compiler übergibt die "angegebenen" Parameter ganz bestimmt richtig ... wäre ein zu großer Zufall, daß soein Fehler all die vielen Jahre (4) noch nicht aufgefallen wäre.
Somit kann/muß der Fehler irgendwo innerhalb der Funktion liegen, oder du übergibst schon fehlerhafte Parameter an die Funktion.
Eigener Programmierfehler oder du bis auf einen Bug gestoßen.
Bei Letzterem kann dir keiner helfen, da wir nicht wissen die es dort drin aussieht.