Ignore:
Timestamp:
May 24, 2009, 7:17:10 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update Samba 3.3 to 3.3.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.3.x/source/smbd/posix_acls.c

    r206 r221  
    564564****************************************************************************/
    565565
    566 static size_t count_canon_ace_list( canon_ace *list_head )
     566static size_t count_canon_ace_list( canon_ace *l_head )
    567567{
    568568        size_t count = 0;
    569569        canon_ace *ace;
    570570
    571         for (ace = list_head; ace; ace = ace->next)
     571        for (ace = l_head; ace; ace = ace->next)
    572572                count++;
    573573
     
    579579****************************************************************************/
    580580
    581 static void free_canon_ace_list( canon_ace *list_head )
     581static void free_canon_ace_list( canon_ace *l_head )
    582582{
    583583        canon_ace *list, *next;
    584584
    585         for (list = list_head; list; list = next) {
     585        for (list = l_head; list; list = next) {
    586586                next = list->next;
    587                 DLIST_REMOVE(list_head, list);
     587                DLIST_REMOVE(l_head, list);
    588588                SAFE_FREE(list);
    589589        }
     
    761761static void merge_aces( canon_ace **pp_list_head )
    762762{
    763         canon_ace *list_head = *pp_list_head;
     763        canon_ace *l_head = *pp_list_head;
    764764        canon_ace *curr_ace_outer;
    765765        canon_ace *curr_ace_outer_next;
     
    770770         */
    771771
    772         for (curr_ace_outer = list_head; curr_ace_outer; curr_ace_outer = curr_ace_outer_next) {
     772        for (curr_ace_outer = l_head; curr_ace_outer; curr_ace_outer = curr_ace_outer_next) {
    773773                canon_ace *curr_ace;
    774774                canon_ace *curr_ace_next;
     
    792792
    793793                                curr_ace_outer->perms |= curr_ace->perms;
    794                                 DLIST_REMOVE(list_head, curr_ace);
     794                                DLIST_REMOVE(l_head, curr_ace);
    795795                                SAFE_FREE(curr_ace);
    796796                                curr_ace_outer_next = curr_ace_outer->next; /* We may have deleted the link. */
     
    805805         */
    806806
    807         for (curr_ace_outer = list_head; curr_ace_outer; curr_ace_outer = curr_ace_outer_next) {
     807        for (curr_ace_outer = l_head; curr_ace_outer; curr_ace_outer = curr_ace_outer_next) {
    808808                canon_ace *curr_ace;
    809809                canon_ace *curr_ace_next;
     
    837837                                         */
    838838
    839                                         DLIST_REMOVE(list_head, curr_ace);
     839                                        DLIST_REMOVE(l_head, curr_ace);
    840840                                        SAFE_FREE(curr_ace);
    841841                                        curr_ace_outer_next = curr_ace_outer->next; /* We may have deleted the link. */
     
    853853                                         */
    854854
    855                                         DLIST_REMOVE(list_head, curr_ace_outer);
     855                                        DLIST_REMOVE(l_head, curr_ace_outer);
    856856                                        SAFE_FREE(curr_ace_outer);
    857857                                        break;
     
    864864        /* We may have modified the list. */
    865865
    866         *pp_list_head = list_head;
     866        *pp_list_head = l_head;
    867867}
    868868
     
    21482148static void arrange_posix_perms(const char *filename, canon_ace **pp_list_head)
    21492149{
    2150         canon_ace *list_head = *pp_list_head;
     2150        canon_ace *l_head = *pp_list_head;
    21512151        canon_ace *owner_ace = NULL;
    21522152        canon_ace *other_ace = NULL;
    21532153        canon_ace *ace = NULL;
    21542154
    2155         for (ace = list_head; ace; ace = ace->next) {
     2155        for (ace = l_head; ace; ace = ace->next) {
    21562156                if (ace->type == SMB_ACL_USER_OBJ)
    21572157                        owner_ace = ace;
     
    21742174
    21752175        if (owner_ace) {
    2176                 DLIST_PROMOTE(list_head, owner_ace);
     2176                DLIST_PROMOTE(l_head, owner_ace);
    21772177        }
    21782178
    21792179        if (other_ace) {
    2180                 DLIST_DEMOTE(list_head, other_ace, canon_ace *);
     2180                DLIST_DEMOTE(l_head, other_ace, canon_ace *);
    21812181        }
    21822182
    21832183        /* We have probably changed the head of the list. */
    21842184
    2185         *pp_list_head = list_head;
     2185        *pp_list_head = l_head;
    21862186}
    21872187               
     
    21962196{
    21972197        mode_t acl_mask = (S_IRUSR|S_IWUSR|S_IXUSR);
    2198         canon_ace *list_head = NULL;
     2198        canon_ace *l_head = NULL;
    21992199        canon_ace *ace = NULL;
    22002200        canon_ace *next_ace = NULL;
     
    23002300                ace->inherited = get_inherited_flag(pal, ace, (the_acl_type == SMB_ACL_TYPE_DEFAULT));
    23012301
    2302                 DLIST_ADD(list_head, ace);
     2302                DLIST_ADD(l_head, ace);
    23032303        }
    23042304
     
    23072307         */
    23082308
    2309         if (!ensure_canon_entry_valid(&list_head, conn->params,
     2309        if (!ensure_canon_entry_valid(&l_head, conn->params,
    23102310                                      S_ISDIR(psbuf->st_mode), powner, pgroup,
    23112311                                      psbuf, False))
     
    23192319        DEBUG(10,("canonicalise_acl: %s ace entries before arrange :\n", the_acl_type == SMB_ACL_TYPE_ACCESS ? "Access" : "Default" ));
    23202320
    2321         for ( ace_count = 0, ace = list_head; ace; ace = next_ace, ace_count++) {
     2321        for ( ace_count = 0, ace = l_head; ace; ace = next_ace, ace_count++) {
    23222322                next_ace = ace->next;
    23232323
     
    23272327
    23282328                if (ace->perms == 0) {
    2329                         DLIST_PROMOTE(list_head, ace);
     2329                        DLIST_PROMOTE(l_head, ace);
    23302330                }
    23312331
     
    23352335        }
    23362336
    2337         arrange_posix_perms(fname,&list_head );
    2338 
    2339         print_canon_ace_list( "canonicalise_acl: ace entries after arrange", list_head );
    2340 
    2341         return list_head;
     2337        arrange_posix_perms(fname,&l_head );
     2338
     2339        print_canon_ace_list( "canonicalise_acl: ace entries after arrange", l_head );
     2340
     2341        return l_head;
    23422342
    23432343  fail:
    23442344
    2345         free_canon_ace_list(list_head);
     2345        free_canon_ace_list(l_head);
    23462346        return NULL;
    23472347}
     
    40464046        SMB_ACL_T def_acl = NULL;
    40474047
    4048         if (num_def_acls && !S_ISDIR(psbuf->st_mode)) {
    4049                 DEBUG(5,("set_unix_posix_default_acl: Can't set default ACL on non-directory file %s\n", fname ));
    4050                 errno = EISDIR;
    4051                 return False;
     4048        if (!S_ISDIR(psbuf->st_mode)) {
     4049                if (num_def_acls) {
     4050                        DEBUG(5,("set_unix_posix_default_acl: Can't set default ACL on non-directory file %s\n", fname ));
     4051                        errno = EISDIR;
     4052                        return False;
     4053                } else {
     4054                        return True;
     4055                }
    40524056        }
    40534057
Note: See TracChangeset for help on using the changeset viewer.