[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tyndur-devel] [PATCH v2 1/3] libc: lio_seek von FILE auf io_resource_t umgestellt
On Sat, Sep 24, 2011 at 04:17:48PM +0200, MNemo wrote:
> > diff --git a/src/modules/lib/lostio/client/seek.c b/src/modules/lib/lostio/client/seek.c
> > index 5f6108d..3cfcd6b 100644
> > --- a/src/modules/lib/lostio/client/seek.c
> > +++ b/src/modules/lib/lostio/client/seek.c
> > @@ -36,27 +36,22 @@
> > *
> > * @param io_res Dateihandle
> > * @param offset Offset bezogen auf den mit origin festgelegten Ursprung
> > - * @param origin Ursprung. Moeglichkeiten:
> > + * @param origin Ursprung. Moeglichkeiten:
> > * - SEEK_SET Bezogen auf Dateianfang
> > * - SEEK_CUR Bezogen auf die aktuelle Position
> > * - SEEK_END Bezogen auf das Ende der Datei
> > *
> > * @return true wenn die Position erfolgreich gesetzt wurde, sonst false
> > */
> > -bool lio_seek(FILE* io_res, uint64_t offset, int origin)
> > +bool lio_seek(io_resource_t* io_res, uint64_t offset, int origin)
> > {
> > io_seek_request_t seek_request;
> > -
> > - // Ungueltige Handles abfangen
> > - if ((io_res == NULL) || (io_res->res->pid == 0)) {
> > - return false;
> > - }
> Warum nicht if ((io_res == NULL) || (io_res->pid == 0)) ?
>
> Mir ist zwar nicht ganz klar was das mit der pid 0 auf sich hat, aber
> zumindest der nullptr ist doch immer noch genauso gefährlich wie vorher.
In erster Linie weil es konsistent mit den anderen Funktionen ist. Die
stdio-Funktionen haben die Prüfung drin (also hier fseek), während die
lio(_compat)_*-Funktionen nicht prüfen.
Die andere Frage wäre natürlich, ob es nicht gescheiter ist,
grundsätzlich abzustürzen, wenn man einen NULL-Pointer bekommt. Da ist
die Ursache dann vielleicht leichter sichtbar als wenn das Programm
anfängt, komische Sachen zu machen, weil der Fehler nicht richtig
behandelt wird.