[LUGA] Mit freundlicher Unterstützung von:
WSR

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [luga] Linux inode.i_count overflow



Peter Holzer wrote:
> 
> On Wed, Jan 21, 1998 at 10:16:35AM +0100, Bernd Petrovitsch wrote:
> > On Wednesday, 21 Jan 1998 9:9, Vinzenz Grabner wrote:
> [46 Zeilen Quotes gelöscht!]
> 
> > >    To fix this bug simply change the i_count type to unsigned long.
> >
> > Hmm und wieso kann ich den nicht overflowen ?
> 
[...]
> Gesamtmenge RAM darzustellen. Bevor das Feld also overflowed, hast geht
> Dir das RAM aus und die Kiste steht aus anderen Gründen :-)

Von Derartigen "BugFixes" halte ich sowieso nichts.  Es hilft zwar
im Moment das Problem zu beheben, aber etwas später (und das muß
erfahrungsgemäß gar nicht so lang sein) ergibt sich daraus ein neues
Problem.  Kein Typ ist groß genug, um immer alle benötigten Daten
und/oder Counts zu halten.  Das Zeigt(e) und die Vergangenheit fast
aller OSes.  (NOS/BE werden die Wenigsten kennen, aber da gab es
ein Overflow Problem mit einem Timer, und sobald das System, als es
*endlich* stabiler wurde, mehr als ein paar Tage durchgelaufen ist,
ist es doch wieder abgestürzt, und keiner wußte warum.  Bis jemand den
Timer Overflow entdeckt hat.)

Meines Erachtens nach *muß* überall dort, wo i_count erhöht wird
(und das gilt auch für alle anderen Counter) überprüft werden, ob
diese Operation noch ausgeführt werden kann, oder nicht.  Wenn ein
Overflow auftreten würde, so ist die gewünschte Operation abzubrechen
und der Syscall muß den Fehlergrund zurückliefern.  Auf die Art
habe ich (1) keine "undefined behaviour" Probleme mehr und (2) weiß
ich, was den Fehler verursacht (ENOMEM, ...) und (3) wozu
schlußendlich liefert jeder Syscall im Fehlerfall -1 zurück *und*
setzt errno "appropriately".

BTW, und analoges gilt m.E. auch für alle Applikationsprogramme.

LG,

-GünthER



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010