[Samba] Bug in Samba v2.2.8a with Windows API GetFileAttributes ?
Bill Smith
bsmith at odi.com
Thu Apr 10 21:59:52 GMT 2003
Before my company was bought out by another company, we were using Samba
v1.9.3 and I'm pretty certain that the GetFileAttributes was working
properly but I can't be absolutely sure. Since the move, we're using v2.2.5
and just recently upgraded to v2.2.8a on Solaris 2.7. I'm doing my testing
on an XP machine.
I'm seeing that GetFileAttributes is always returning 0 instead of a hex
value for any valid file pathname accessed via the samba server. If I
access the same file locally or via another NT server, I get valid results:
Accessign a file locally:
D:\temp>test d:\temp\wyb.zip
SUCCESS: pathname [d:\temp\wyb.zip] is a file! rc=2820
Accessing a file on an NT server:
D:\temp>test \\absolut\home\b\bsmith\xmas01.xls
SUCCESS: pathname [\\absolut\home\b\bsmith\xmas01.xls] is a file! rc=20
Accessing a file via a solaris samba server
D:\temp>test \\crystal\h\crystal\16\du-crystal16
FAILURE: pathname [\\crystal\h\crystal\16\du-crystal16] is not a file! rc=0
D:\temp>ls -al \\crystal\h\crystal\16\du-crystal16
-rwxrwxrwx 1 CRYSTAL\root CRYSTAL\other 991546 Apr 10 02:34
\\crystal\h\
crystal\16\du-crystal16
Here the test program that I used with VC++ 6.0:
#include <windows.h>
#include <iostream.h>
int main (int argc, char** argv) {
if (argc != 2) {
cout << "Usage: test <pathname>" << endl;
return 1;
}
const char* pn = argv[1];
DWORD rc = GetFileAttributes(pn);
if (0xFFFFFFFF != rc &&
(rc &
(FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_READONLY)) &&
!(rc & (FILE_ATTRIBUTE_DIRECTORY)))
{
cout << " SUCCESS: pathname [" << pn << "] is a file! rc=" << hex <<
rc << endl;
return 0;
}
else {
cout << " FAILURE: pathname [" << pn << "] is not a file! rc=" << hex <<
rc << endl;
return 1;
}
}
Thanks in advance for any advice or suggestions.
--Bill Smith
More information about the samba
mailing list