r2904: - fixed the old style SMBsearch to return the pvfs shortname, not a truncated...
authorAndrew Tridgell <tridge@samba.org>
Mon, 11 Oct 2004 03:27:16 +0000 (03:27 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:59:46 +0000 (12:59 -0500)
- short name can be up to 12 bytes, not 11
(This used to be commit 657103ec6264bf4c2986fedd3fc6577746395d49)

source4/ntvfs/posix/pvfs_search.c
source4/ntvfs/posix/pvfs_shortname.c

index 211cb68b862631a7a48bb2274a10203cd2046c46..07f2a0f127da980c5b5d934e117dde932095ce62 100644 (file)
@@ -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;
index ae911ad885819c5f55df7f226fda24029f7039df..81cf42e71fade4a6879eb5dfb52fad05c46ddccb 100644 (file)
@@ -63,7 +63,7 @@ char *pvfs_short_name_component(struct pvfs_state *pvfs, const char *name)
        char c1, c2;
        const char *ext;
 
-       if (strlen(name) < 12) {
+       if (strlen(name) <= 12) {
                return talloc_strdup(pvfs, name);
        }