|
From: | Fred Wright |
Subject: | Re: ✘3.23~rc2 Please test |
Date: | Fri, 6 Aug 2021 11:34:23 -0700 (PDT) |
User-agent: | Alpine 2.23 (OSX 453 2020-06-18) |
On Fri, 6 Aug 2021, Gary E. Miller wrote:
gpxlogger never worked for all cases, so I'll not hold up the release for a bad corner case.
As I posted last night, it's now failing in some cases that used to work. Not fixing old bugs in the current release is justifiable, but introducing new ones is bad.
Unfortunately, I don't see a fix that's both easy and clean. But if the goal is simply to comply with the "letter of the law" for CWE-479, then that could be handled by using sig_flag to ensure that the nonreentrant action can't happen more than once. Whatever tool you're using might not be smart enough to figure out that reentrancy doesn't matter in that case and still complain, but it would be a false positive. Clearly the signal handler has to do *something* to break out of gps_mainloop() in the main program, or one gets the current hang behavior. This would be a more widespread problem if programs besides gpxlogger used gps_mainloop().
If you think this is fun, try making signal interactions with the main program work reliably in Python. :-)
Fred Wright
[Prev in Thread] | Current Thread | [Next in Thread] |