summaryrefslogtreecommitdiffstats
path: root/src/fw-iso.c
diff options
context:
space:
mode:
authorGravatar Stefan Richter 2013-08-24 12:50:58 +0200
committerGravatar Stefan Richter 2013-08-24 13:07:37 +0200
commitd80678dc5545df8c5b36a265eb73f8c40ca54b5d (patch)
tree33961c8adfbb75bcd4e36b279d3d86f67021e7fe /src/fw-iso.c
parenttools: Fix startup of dumpiso and sendiso on juju (diff)
Save and restore errno in raw1394_new_handle{,_on_port} for legacy applications
Since dual-stack capability was added to libraw1394, raw1394_new_handle() and raw1394_new_handle_on_port() began to alter errno even when succeeding. This breaks old application code which contains the bug of checking for failure in errno rather than in the return code of said functions, or similar bugs with wrong assumptions about errno. While those applications should be fixed, it may not always be possible or feasible to do so. Hence add a workaround to libraw1394 which saves and restores errno in said two functions. From a superficial review of dispatch.c, it seems that these two functions are the only ones where such a workaround may be needed. However, this may not be true if any fw_XYZ() function implementation differs from the counterpart ieee1394_XYZ() function in the way that the former alters errno during successful execution while the latter does not. To be clear, altering errno in absence of failure is absolutely allowed in library code (except for signal handlers), yet it may be unexpected and be perceived as a library or kernel regression if the application client code is buggy in this regard. Reported-by: Vladimir Romanov <blueboar2@gmail.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'src/fw-iso.c')
0 files changed, 0 insertions, 0 deletions
r layoutGravatar dmaas 4-123/+236 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@98 53a565d1-3bb7-0310-b661-cf11e63c67ab 2002-12-20oops, irq_interval needs to be signedGravatar anonymous 1-1/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@97 53a565d1-3bb7-0310-b661-cf11e63c67ab 2002-12-20dmaas - renamed exported arm definitions into the raw1394_ namespace; ↵Gravatar anonymous 3-124/+48 brought kernel-raw1394.h back in sync with the kernel version git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@96 53a565d1-3bb7-0310-b661-cf11e63c67ab 2002-12-16rawiso updates:Gravatar dmaas 3-18/+25 - changed return type of rawiso xmit/recv handlers from int to enum raw1394_iso_disposition - added an ioctl (RAW1394_ISO_QUEUE_ACTIVITY) to force an ISO_ACTIVITY event into the queue. This is needed for handling RAW1394_ISO_DEFER, to kick us out of the next read() instead of sleeping forever. - removed references to "8-byte" isochronous header - this is an OHCI-specific implementation detail git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@95 53a565d1-3bb7-0310-b661-cf11e63c67ab 2002-11-18fix cplusplus extern C blockGravatar ddennedy 1-4/+4 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@94 53a565d1-3bb7-0310-b661-cf11e63c67ab 2002-11-18merged rawiso branchGravatar ddennedy 7-6/+488 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@93 53a565d1-3bb7-0310-b661-cf11e63c67ab