[jcifs] Seven jCIFS bug fixes from Google.

Brett Johnson brett.michael.johnson at gmail.com
Fri Sep 19 14:08:58 MDT 2014


Michael Allen,

For several years Google has used jCIFS for 
some of its open source projects, primarily its
Google Search Appliance Filesystem Connector.
Over the years, we have fixed a handful of bugs
and it was suggested to me that we submit these
fixes for inclusion in a future release of jCIFS.

I have been maintaining jCIFS as a vendor branch
in our subversion repository.  You can view all
our changes to the jCIFS code base here:
http://code.google.com/p/google-enterprise-connector-file-system/source/list?path=trunk/projects/jcifs

However, roughly half of those changes are related
to accommodating the code base into our build and
source control environment and adding support for
restoring the last access time of files. So I will
point you to individual bug fixes below. The change
log for the linked changes contain more details.

Patches made to the 1.3.15 codebase:

Fix file handle leak in SmbFile.setPathInformation()
if exceptions are thrown.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=374


Detect DCE RPC interface using English Locale.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=416


We then upgraded to 1.3.17 codebase and subsequently
made the following fixes:

Avoid deadlock by replacing Dfs’ synchronized methods
with finer-grained locks on the two caches in Dfs.
I think I saw a nearly identical fix for the deadlock
submitted previously by another developer.
This change also makes Dfs.isTrustedDomain() thread-safe,
where it was not previously.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=549


SmbFile tears down and retries broken connections.
This was a last-ditch effort to recover from an
apparently corrupted transport state.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=563


This change adjusts the NtTransport padding sizes to
accommodate various NAS vendor implementations, in
this case EMC Isilon. This patch was not constructed
by Google, but incorporated by us from a separate
source. See the change log for details.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=625


Fixed NtlmContext by always signing messages even if
server response (NTLMSSP_CHALLENGE) does not set
"Negotiate Sign" flag.  Fixed AndXServerMessageBlock
by not increasing message length (wordCount) when
fileType is named pipe. These fixed issues with 
Network Appliance servers.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=643


Fix missing notification in SmbTree Transport locking.
https://code.google.com/p/google-enterprise-connector-file-system/source/detail?r=678

—
Brett M. Johnson



More information about the jCIFS mailing list