When restoring a tar file using smbclient a core dump occurs when there are long file names (ie: >= 100 length names, using the @LongLink dummy record convention). When encountering the "/./@LongLink" header, get_longfilename() is called. But it allocates space using strlen(finfo.name), which at this point is "././@LongLink" or similar, rather than finfo.size, which is the real length of the long file name. The attached patch replaces strlen(finfo.name) with finfo.size. In fact, the code was this way in 2.2.3 (haven't checked later 2.2.x releases).
Created attachment 118 [details] proposed patch
Patch looks good - applied & thanks ! Jeremy.
originally reported against one of the 3.0.0rc[1-4] releases. Cleaning up non-production versions.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.
database cleanup