bin/102143: yppush: remove async i/o and add proper error handling
Thomas Quinot
thomas at cuivre.fr.eu.org
Wed Aug 16 12:50:21 UTC 2006
>Number: 102143
>Category: bin
>Synopsis: yppush: remove async i/o and add proper error handling
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Aug 16 12:50:20 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Thomas Quinot
>Release: FreeBSD 6.1-RC i386
>Organization:
>Environment:
System: FreeBSD melamine.cuivre.fr.eu.org 6.1-RC FreeBSD 6.1-RC #0: Thu May 4 13:21:21 CEST 2006 thomas at melamine.cuivre.fr.eu.org:/space/build/obj/space/build/src/RELENG_6/sys/MELAMINE i386
>Description:
YPPush currently uses asynchronous (SIGIO-based) input/output,
and makes call to the memory allocator during handling of SIGIO,
which can cause an abort due to incorrect reentrant invocation
of free(3), as described here:
http://lists.freebsd.org/pipermail/freebsd-net/2004-October/005321.html
It also misses error handling:
* for an incoming response with an incorrect tid;
* for a failure to register the response RPC program,
and has incorrect error handling for failure to allocate a job
descriptor (this should be handled prior to registering the transient
program, otherwise yppush_exit can't unregister it in case of malloc failure).
>How-To-Repeat:
>Fix:
A patch for the first item (SIGIO issues) has been posted for review
on freebsd-net:
http://lists.freebsd.org/pipermail/freebsd-net/2006-August/011309.html
where no objection was raised.
Consequently, I'll commit it together with minor changes adding the
missing error handlers and fixing the incorrect one.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list