# HG changeset patch # User Joe Branton # Date 1280368978 -36000 # Node ID 4ab8c027df23525403302f4eaa80b854ea2cf431 # Parent 68b921ce19443d7e83a26ef9afb09ea67166d0ec Fixed a defect in iosrv.exe that caused a panic if a foreground read object was attached to a different end point. This was due to the read object being notified of a change in foreground before its iEndPoint member was updated. This member is now updated before attempting the attach, and is set to NULL in the event of a leave (resulting in the read object being left in an unattached state). Also tweaked ymodem.cif to make it more readable. diff -r 68b921ce1944 -r 4ab8c027df23 core/builtins/ymodem.cif --- a/core/builtins/ymodem.cif Fri Jun 25 13:06:42 2010 +0100 +++ b/core/builtins/ymodem.cif Thu Jul 29 12:02:58 2010 +1000 @@ -22,19 +22,9 @@ Allows the transfer of files to and from remote terminal software that supports YMODEM. Supports batch mode, allowing multiple files to be sent and received. Note, the console implementation that ymodem is attached to must support binary mode. If it doesn't, C (-47) will be reported. In practice, this currently means that one of the vt100 console variants (F, F, F, F or F) must be used. -==argument filename file_name optional multiple - -=over 4 - -=item Send mode: +Note, when sending, file names specified with wild characters are accepted. When receiving, specify a directory into which one or more files should be received. If no directory is specified, the received files will be saved in the current working directory (the name of each received file is provided by the sending end). -The names of the files to be sent (wild characters are accepted). At least one file must be specified. - -=item Receive mode: - -The name of the directory in which to write the received files (the name of each received file is provided by the send). If not specified, the received files are saved in the current working directory - -=back +==argument filename file_name optional multiple ==see-also diff -r 68b921ce1944 -r 4ab8c027df23 documentation/change_history.pod --- a/documentation/change_history.pod Fri Jun 25 13:06:42 2010 +0100 +++ b/documentation/change_history.pod Thu Jul 29 12:02:58 2010 +1000 @@ -14,6 +14,10 @@ =head1 FShell Change History +=head2 Release 000.4 + +Fixed a defect in iosrv.exe that caused a panic if a foreground read object was attached to a different end point. This was due to the read object being notified of a change in foreground before its iEndPoint member was updated. This member is now updated before attempting the attach, and is set to NULL in the event of a leave (resulting in the read object being left in an unattached state). + =head2 Release 000.3 Build fixes. diff -r 68b921ce1944 -r 4ab8c027df23 libraries/iosrv/server/readwrite.cpp --- a/libraries/iosrv/server/readwrite.cpp Fri Jun 25 13:06:42 2010 +0100 +++ b/libraries/iosrv/server/readwrite.cpp Thu Jul 29 12:02:58 2010 +1000 @@ -362,8 +362,13 @@ ReadEndPoint()->IorepDetach(*this); } - aEndPoint.IorepAttachL(*this, aMode); iEndPoint = &aEndPoint; + TRAPD(err, aEndPoint.IorepAttachL(*this, aMode)); + if (err) + { + iEndPoint = NULL; + User::Leave(err); + } } void CIoReadObject::SetReadMode(RIoReadHandle::TReadMode aMode) @@ -954,8 +959,13 @@ WriteEndPoint()->IowepDetach(*this); } - aEndPoint.IowepAttachL(*this); iEndPoint = &aEndPoint; + TRAPD(err, aEndPoint.IowepAttachL(*this)); + if (err) + { + iEndPoint = NULL; + User::Leave(err); + } } void CIoWriteObject::WriteL(const RMsg& aMessage)