summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_search.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-10-11 03:27:16 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:46 -0500
commitaf3866903e009271533f91470fe7d8819516b09e (patch)
tree982c5ac4cef5fc9e110d1d6c6358e09e98806823 /source4/ntvfs/posix/pvfs_search.c
parent4aebdb779a406bba6aa8d5665c608083e19fcf52 (diff)
downloadsamba-af3866903e009271533f91470fe7d8819516b09e.tar.gz
samba-af3866903e009271533f91470fe7d8819516b09e.tar.bz2
samba-af3866903e009271533f91470fe7d8819516b09e.zip
r2904: - fixed the old style SMBsearch to return the pvfs shortname, not a truncated long name.
- short name can be up to 12 bytes, not 11 (This used to be commit 657103ec6264bf4c2986fedd3fc6577746395d49)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_search.c')
-rw-r--r--source4/ntvfs/posix/pvfs_search.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source4/ntvfs/posix/pvfs_search.c b/source4/ntvfs/posix/pvfs_search.c
index 211cb68b86..07f2a0f127 100644
--- a/source4/ntvfs/posix/pvfs_search.c
+++ b/source4/ntvfs/posix/pvfs_search.c
@@ -36,6 +36,7 @@ static NTSTATUS fill_search_info(struct pvfs_state *pvfs,
{
struct pvfs_filename *name;
NTSTATUS status;
+ const char *shortname;
status = pvfs_resolve_partial(pvfs, file, unix_path, fname, &name);
if (!NT_STATUS_IS_OK(status)) {
@@ -50,13 +51,15 @@ static NTSTATUS fill_search_info(struct pvfs_state *pvfs,
case RAW_SEARCH_SEARCH:
case RAW_SEARCH_FFIRST:
case RAW_SEARCH_FUNIQUE:
+ shortname = pvfs_short_name(pvfs, name, name);
file->search.attrib = name->dos.attrib;
file->search.write_time = nt_time_to_unix(name->dos.write_time);
file->search.size = name->st.st_size;
- file->search.name = fname;
+ file->search.name = shortname;
file->search.id.reserved = 8;
memset(file->search.id.name, ' ', sizeof(file->search.id.name));
- memcpy(file->search.id.name, fname, MIN(strlen(fname)+1, sizeof(file->search.id.name)));
+ memcpy(file->search.id.name, shortname,
+ MIN(strlen(shortname)+1, sizeof(file->search.id.name)));
file->search.id.handle = search->handle;
file->search.id.server_cookie = dir_index+1;
file->search.id.client_cookie = 0;