Ignore:
Timestamp:
Apr 9, 2010, 3:20:58 PM (15 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.5.x: update to 3.5.2

Location:
vendor/current/source3/modules
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/modules/vfs_acl_tdb.c

    r414 r427  
    3838*******************************************************************/
    3939
    40 static bool acl_tdb_init(struct db_context **pp_db)
     40static bool acl_tdb_init(void)
    4141{
    4242        char *dbname;
    4343
    4444        if (acl_db) {
    45                 *pp_db = acl_db;
    4645                ref_count++;
    4746                return true;
     
    5655
    5756        become_root();
    58         *pp_db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
     57        acl_db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
    5958        unbecome_root();
    6059
    61         if (*pp_db == NULL) {
     60        if (acl_db == NULL) {
    6261#if defined(ENOTSUP)
    6362                errno = ENOTSUP;
     
    7877*******************************************************************/
    7978
    80 static void free_acl_tdb_data(void **pptr)
    81 {
    82         struct db_context **pp_db = (struct db_context **)pptr;
    83 
     79static void disconnect_acl_tdb(struct vfs_handle_struct *handle)
     80{
     81        SMB_VFS_NEXT_DISCONNECT(handle);
    8482        ref_count--;
    8583        if (ref_count == 0) {
    86                 TALLOC_FREE(*pp_db);
    87                 acl_db = NULL;
     84                TALLOC_FREE(acl_db);
    8885        }
    8986}
     
    147144        TDB_DATA data;
    148145        struct file_id id;
    149         struct db_context *db;
     146        struct db_context *db = acl_db;
    150147        NTSTATUS status = NT_STATUS_OK;
    151148        SMB_STRUCT_STAT sbuf;
    152 
    153         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context,
    154                 return NT_STATUS_INTERNAL_DB_CORRUPTION);
    155149
    156150        ZERO_STRUCT(sbuf);
     
    205199        struct file_id id;
    206200        TDB_DATA data;
    207         struct db_context *db;
     201        struct db_context *db = acl_db;
    208202        struct db_record *rec;
    209203        NTSTATUS status;
     
    211205        DEBUG(10,("store_acl_blob_fsp: storing blob length %u on file %s\n",
    212206                  (unsigned int)pblob->length, fsp_str_dbg(fsp)));
    213 
    214         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context,
    215                 return NT_STATUS_INTERNAL_DB_CORRUPTION);
    216207
    217208        status = vfs_stat_fsp(fsp);
     
    244235{
    245236        struct smb_filename *smb_fname_tmp = NULL;
    246         struct db_context *db;
     237        struct db_context *db = acl_db;
    247238        NTSTATUS status;
    248239        int ret = -1;
    249 
    250         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
    251240
    252241        status = copy_smb_filename(talloc_tos(), smb_fname, &smb_fname_tmp);
     
    285274
    286275        SMB_STRUCT_STAT sbuf;
    287         struct db_context *db;
     276        struct db_context *db = acl_db;
    288277        int ret = -1;
    289 
    290         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
    291278
    292279        if (lp_posix_pathnames()) {
     
    317304                                const char *user)
    318305{
    319         struct db_context *db;
    320306        int ret = SMB_VFS_NEXT_CONNECT(handle, service, user);
    321307
     
    324310        }
    325311
    326         if (!acl_tdb_init(&db)) {
     312        if (!acl_tdb_init()) {
    327313                SMB_VFS_NEXT_DISCONNECT(handle);
    328314                return -1;
    329315        }
    330 
    331         SMB_VFS_HANDLE_SET_DATA(handle, db, free_acl_tdb_data,
    332                                 struct db_context, return -1);
    333316
    334317        /* Ensure we have "inherit acls = yes" if we're
     
    353336{
    354337        SMB_STRUCT_STAT sbuf;
    355         struct db_context *db;
     338        struct db_context *db = acl_db;
    356339        int ret = -1;
    357 
    358         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
    359340
    360341        if (lp_posix_pathnames()) {
     
    388369                            SMB_ACL_T theacl)
    389370{
    390         struct db_context *db;
     371        struct db_context *db = acl_db;
    391372        NTSTATUS status;
    392373        int ret;
    393 
    394         SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
    395374
    396375        status = vfs_stat_fsp(fsp);
     
    412391static struct vfs_fn_pointers vfs_acl_tdb_fns = {
    413392        .connect_fn = connect_acl_tdb,
     393        .disconnect = disconnect_acl_tdb,
    414394        .opendir = opendir_acl_common,
    415395        .mkdir = mkdir_acl_common,
  • vendor/current/source3/modules/vfs_aixacl2.c

    r414 r427  
    494494        .sys_acl_set_fd = aixjfs2_sys_acl_set_fd,
    495495        .sys_acl_delete_def_file = aixjfs2_sys_acl_delete_def_file
    496 }
     496};
    497497
    498498NTSTATUS vfs_aixacl2_init(void);
  • vendor/current/source3/modules/vfs_netatalk.c

    r414 r427  
    132132        }
    133133
    134         if (!(new_list = SMB_CALLOC_ARRAY(name_compare_entry, (count == 0 ? 1 : count + 1))))
     134        if (!(new_list = SMB_CALLOC_ARRAY(name_compare_entry, count + 2)))
    135135                return;
    136136
  • vendor/current/source3/modules/vfs_scannedonly.c

    r414 r427  
    823823        path_w_slash = name_w_ending_slash(ctx,path);
    824824        dirp = SMB_VFS_NEXT_OPENDIR(handle, path, NULL, 0);
     825        if (!dirp) {
     826                return -1;
     827        }
    825828        while ((dire = SMB_VFS_NEXT_READDIR(handle, dirp, NULL)) != NULL) {
    826829                if (ISDOT(dire->d_name) || ISDOTDOT(dire->d_name)) {
     
    879882                }
    880883        }
    881         return SMB_VFS_NEXT_CLOSEDIR(handle, dirp);
     884        SMB_VFS_NEXT_CLOSEDIR(handle, dirp);
     885        return SMB_VFS_NEXT_RMDIR(handle, path);
    882886}
    883887
Note: See TracChangeset for help on using the changeset viewer.