Email List: Xaustin-review-lX
[All Lists]

Defect in XSH system()

To: yyyyyyyyyyyyyyy@xxxxxxxxxxxxx
Subject: Defect in XSH system()
From: yyyyyyy@xxxxxxxxxx
Date: Sat, 19 Oct 2002 10:06:23 +0100 (BST)
        Defect report from : Ulrich Drepper , Red Hat, Inc.

(Please direct followup comments direct to yyyyyyyyyyyyyy@xxxxxxxxxxxxx)

@ page 1474 line 45595 section system() objection {ud-system}

Problem:

Defect code :  2. Omission

Since I didn't get any response to the question I sent to the mailing list now 
the formal approach.


system is specified as a cancellation point.  What is not specified is what the 
implementation has to do in case of a cancellation.  The main problem is that 
handling of the created process.  If system doesn't do anything special when 
cancelled the created child process can turn into a zombie.  This is a resource 
leak which can lead to problems in long running programs.

Therefore wording should be added that if system is cancelled the child should 
be killed.  (Can this fail?)

Alternatively, remove system() from the list of cancellation points.

Action:

Two alternatives proposed here (maybe there are more):

a) add new paragraph marked THR before line 45595:

  In case a thread is cancelled while executing system() the child process, if 
already created and not yet terminated, must be killed and waited for.


b) remove system() from the list of cancellation points

<Prev in Thread] Current Thread [Next in Thread>