Print this page
    
NEX-6673 possible NULL pointer dereference in mountd`mount
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Alex Deiter <alex.deiter@nexenta.com>
NEX-4116 mountd: The IP to name translation is usually not needed in nfsauth_access()
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-4603 mountd: Compile warnings cleanup
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-1974 Support for more than 16 groups with AUTH_SYS
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-1128 NFS server: Generic uid and gid remapping for AUTH_SYS
Reviewed by: Jan Kryl <jan.kryl@nexenta.com>
OS-20 share_nfs(1m) charset handling is unreliable
OS-22 Page fault at nfscmd_dropped_entrysize+0x1e()
OS-23 NFSv2/3/4: READDIR responses are inconsistent when charset conversion fails
OS-24 rfs3_readdir(): Issues related to nfscmd_convdirent()
Reviewed by: Jan Kryl <jan.kryl@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/cmd/fs.d/nfs/mountd/mountd.h
          +++ new/usr/src/cmd/fs.d/nfs/mountd/mountd.h
   1    1  /*
   2    2   * CDDL HEADER START
   3    3   *
   4    4   * The contents of this file are subject to the terms of the
   5    5   * Common Development and Distribution License (the "License").
   6    6   * You may not use this file except in compliance with the License.
   7    7   *
   8    8   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9   * or http://www.opensolaris.org/os/licensing.
  10   10   * See the License for the specific language governing permissions
  11   11   * and limitations under the License.
  12   12   *
  
    | 
      ↓ open down ↓ | 
    12 lines elided | 
    
      ↑ open up ↑ | 
  
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23      - * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  24      - */
  25      -
  26      -/*
  27   23   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  28   24   * Use is subject to license terms.
       25 + * Copyright 2016 Nexenta Systems, Inc.
  29   26   */
  30   27  
  31   28  #ifndef _MOUNTD_H
  32   29  #define _MOUNTD_H
  33   30  
  34   31  #include <door.h>
  35   32  #include <nfs/nfs.h>
  36   33  
  37   34  #ifdef  __cplusplus
  38   35  extern "C" {
  39   36  #endif
  40   37  
  41      -#define MAXIPADDRLEN    512
  42      -
  43   38  struct nd_hostservlist;
  44   39  extern void rmtab_load(void);
  45   40  extern void mntlist_send(SVCXPRT *transp);
  46   41  extern void mntlist_new(char *host, char *path);
  47   42  extern void mntlist_delete(char *host, char *path);
  48   43  extern void mntlist_delete_all(char *host);
  49   44  extern void netgroup_init(void);
  50   45  extern int  netgroup_check(struct nd_hostservlist *, char *, int);
  51   46  extern void netgrp_cache_flush(void);
  52   47  extern void export(struct svc_req *);
  53   48  extern void nfsauth_func(void *, char *, size_t, door_desc_t *, uint_t);
  54   49  extern char *inet_ntoa_r(struct in_addr, char *);
  55   50  extern int nfs_getfh(char *, int, int *, char *);
  56   51  
  57   52  extern void nfsauth_prog(struct svc_req *, SVCXPRT *);
  58   53  
  59   54  extern struct sh_list *share_list;
  60   55  extern rwlock_t sharetab_lock;
  61   56  extern void check_sharetab(void);
  62   57  
  63   58  struct cln;
  64   59  extern void log_cant_reply(SVCXPRT *);
  65   60  extern void log_cant_reply_cln(struct cln *);
  66   61  
  67   62  extern void *exmalloc(size_t);
  68   63  
  69   64  extern struct share *findentry(char *);
  70   65  extern int check_client(struct share *, struct cln *, int, uid_t, gid_t, uint_t,
  
    | 
      ↓ open down ↓ | 
    18 lines elided | 
    
      ↑ open up ↑ | 
  
  71   66      gid_t *, uid_t *, gid_t *, uint_t *, gid_t **);
  72   67  
  73   68  extern int in_access_list(struct cln *, char *);
  74   69  
  75   70  struct cln {
  76   71          SVCXPRT *transp;
  77   72          char *netid;
  78   73          struct netconfig *nconf;
  79   74          struct netbuf *nbuf;
  80   75          struct nd_hostservlist *clnames;
  81      -        char *host;
       76 +        char host[INET6_ADDRSTRLEN];
  82   77          int flags;
  83   78  };
  84   79  
  85   80  extern void cln_init(struct cln *, SVCXPRT *);
  86   81  extern void cln_init_lazy(struct cln *, char *, struct netbuf *);
  87   82  extern void cln_fini(struct cln *);
  88   83  extern struct netbuf *cln_getnbuf(struct cln *);
  89   84  extern struct nd_hostservlist *cln_getclientsnames(struct cln *);
  90      -extern boolean_t cln_havehost(struct cln *);
  91   85  extern char *cln_gethost(struct cln *);
  92   86  
  93   87  /*
  94   88   * These functions are defined here due to the fact
  95   89   * that we can not find the proper header file to
  96   90   * include. These functions are, at present, not
  97   91   * listed in any other header files.
  98   92   */
  99   93  /*
 100   94   * These three functions are hidden functions in the
 101   95   * bsm libraries (libbsm).
 102   96   */
 103   97  extern void audit_mountd_setup(void);
 104   98  extern void audit_mountd_mount(char *, char *, int);
 105   99  extern void audit_mountd_umount(char *, char *);
 106  100  
 107  101  /*
 108  102   * This appears to be a hidden function in libc.
 109  103   * Private interface to nss_search().
 110  104   * Accepts N strings rather than 1.
 111  105   */
 112  106  extern  int __multi_innetgr();
 113  107  
 114  108  #ifdef  __cplusplus
 115  109  }
 116  110  #endif
 117  111  
 118  112  #endif  /* _MOUNTD_H */
  
    | 
      ↓ open down ↓ | 
    18 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX