Closed
Bug 17806
Opened 26 years ago
Closed 25 years ago
The value of the out_flags fields when PR_Poll returns 0 or -1
Categories
(NSPR :: NSPR, defect, P3)
Tracking
(Not tracked)
RESOLVED
FIXED
4.1
People
(Reporter: wtc, Assigned: wtc)
Details
The value of the out_flags fields of PRPollDesc structures
is meaningful only when PR_Poll succeeds (returning a positive
number). When PR_Poll returns -1 (error) or 0 (timeout),
the out_flags fields must not be examined.
There are two problems that need to be fixed.
1. Documentation: the above behavior is not clearly documented.
NSPR doc says:
On return, the out_flags field of the PRPollDesc data
structure is set to indicate what kind of I/O is ready
on the respective descriptor.
The comments in prio.h say:
Upon return from this call PRPollDesc.out_flags will
be set to indicate what kind of i/o can be performed
on the respective descriptor.
We should change "On return" to "On successful return" and
add "if PR_Poll returns 0 or -1, the out_flags fields do
not contain meaningful values and should not be examined".
2. Implementation: the current implementation of PR_Poll uses
the out_flags fields as temporary variables. When PR_Poll
returns 0 or -1, it does not reset the out_flags fields to
0. While the caller should not examine the out_flags fields
in this case, as defensive programming we should zero the
out_flags fields.
| Assignee | ||
Updated•26 years ago
|
Status: NEW → ASSIGNED
| Assignee | ||
Updated•25 years ago
|
Target Milestone: --- → 4.1
| Assignee | ||
Comment 1•25 years ago
|
||
I fixed the comments for PR_Poll in prio.h and the documentation
for PR_Poll to say that the out_flags fields must not be used if
PR_Poll returns 0 or -1.
/cvsroot/mozilla/nsprpub/pr/include/prio.h, revisions 3.26 and 3.27
/cvsroot/mozilla-org/html/docs/refList/refNSPR/priofnc.html, revision 1.4
I decided to not change the implementation of PR_Poll. I think
the advantage to be gained is small and it may promote incorrect
programming. Callers of PR_Poll should only check the out_flags
fields on successful return as documented.
Marked the bug fixed.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•