Got very strict about the differences and uses of
authorJeremy Allison <jra@samba.org>
Tue, 29 Sep 1998 20:24:17 +0000 (20:24 +0000)
committerJeremy Allison <jra@samba.org>
Tue, 29 Sep 1998 20:24:17 +0000 (20:24 +0000)
uid_t, gid_t and vuid. Added sys_getgroups() to get
around the int * return problem. Set correct datatypes
for all uid, gid and vuid variables.
Jeremy.
(This used to be commit e570db46fc3a78e499523fd342e9a34cebb18998)

25 files changed:
source3/client/client.c
source3/client/clientutil.c
source3/client/smbmount.c
source3/include/client.h
source3/include/ntdomain.h
source3/include/proto.h
source3/include/smb.h
source3/lib/system.c
source3/lib/util.c
source3/libsmb/clientgen.c
source3/libsmb/smbencrypt.c
source3/lsarpcd/srv_lsa.c
source3/rpc_server/srv_lsa.c
source3/rpc_server/srv_netlog.c
source3/rpc_server/srv_pipe_hnd.c
source3/rpc_server/srv_reg.c
source3/rpc_server/srv_samr.c
source3/rpc_server/srv_srvsvc.c
source3/rpc_server/srv_util.c
source3/rpc_server/srv_wkssvc.c
source3/rpcclient/rpcclient.c
source3/smbd/ipc.c
source3/smbd/password.c
source3/smbd/service.c
source3/smbd/uid.c

index 0d27039cb93b0b9edc49b2a3deac3cf7a517a68b..c94c3ccb8c274c160e2371911664441c0e4116f2 100644 (file)
@@ -71,12 +71,10 @@ extern int DEBUGLEVEL;
 
 BOOL translation = False;
 
-extern int cnum;
-extern int mid;
-extern int pid;
-extern int tid;
-extern int gid;
-extern int uid;
+extern uint16 cnum;
+extern uint16 mid;
+extern uint16 pid;
+extern uint16 vuid;
 
 extern BOOL have_ip;
 extern int max_xmit;
@@ -805,17 +803,18 @@ static int do_short_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (
 /****************************************************************************
   do a directory listing, calling fn on each file found
   ****************************************************************************/
-void do_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*fn)(file_info *),BOOL recurse_dir, BOOL dirstoo)
+void do_dir(char *inbuf,char *outbuf,char *mask,int attribute,void (*fn)(file_info *),BOOL recurse_dir, BOOL dirstoo)
 {
-  DEBUG(5,("do_dir(%s,%x,%s)\n",Mask,attribute,BOOLSTR(recurse_dir)));
+  dos_format(mask);
+  DEBUG(5,("do_dir(%s,%x,%s)\n",mask,attribute,BOOLSTR(recurse_dir)));
   if (Protocol >= PROTOCOL_LANMAN2)
     {
-      if (do_long_dir(inbuf,outbuf,Mask,attribute,fn,recurse_dir,dirstoo) > 0)
+      if (do_long_dir(inbuf,outbuf,mask,attribute,fn,recurse_dir,dirstoo) > 0)
        return;
     }
 
-  expand_mask(Mask,False);
-  do_short_dir(inbuf,outbuf,Mask,attribute,fn,recurse_dir,dirstoo);
+  expand_mask(mask,False);
+  do_short_dir(inbuf,outbuf,mask,attribute,fn,recurse_dir,dirstoo);
   return;
 }
 
@@ -1051,13 +1050,13 @@ static void cmd_dir(char *inbuf,char *outbuf)
   if(mask[strlen(mask)-1]!='\\')
     pstrcat(mask,"\\");
 
-  if (next_token(NULL,buf,NULL,sizeof(buf)))
-    {
-      if (*p == '\\')
-       pstrcpy(mask,p);
-      else
-       pstrcat(mask,p);
-    }
+  if (next_token(NULL,buf,NULL,sizeof(buf))) {
+    dos_format(p);
+    if (*p == '\\')
+      pstrcpy(mask,p);
+    else
+      pstrcat(mask,p);
+  }
   else {
     pstrcat(mask,"*");
   }
@@ -1086,12 +1085,13 @@ static void cmd_du(char *inbuf,char *outbuf)
     pstrcat(mask,"\\");
 
   if (next_token(NULL,buf,NULL,sizeof(buf)))
-    {
-      if (*p == '\\')
-       pstrcpy(mask,p);
-      else
-       pstrcat(mask,p);
-    }
+  {
+    dos_format(p);
+    if (*p == '\\')
+      pstrcpy(mask,p);
+    else
+      pstrcat(mask,p);
+  }
   else {
     pstrcat(mask,"*");
   }
@@ -1135,10 +1135,10 @@ static void do_get(char *rname,char *lname,file_info *finfo1)
   outbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN);
 
   if (!inbuf || !outbuf)
-    {
-      DEBUG(0,("out of memory\n"));
-      return;
-    }
+  {
+    DEBUG(0,("out of memory\n"));
+    return;
+  }
 
   bzero(outbuf,smb_size);
   set_message(outbuf,15,1 + strlen(rname),True);
@@ -3807,9 +3807,8 @@ static void usage(char *pname)
   pstrcpy(workgroup,lp_workgroup());
 
   load_interfaces();
-  pid = getpid();
-  uid = getuid();
-  gid = getgid();
+  pid = (uint16)getpid();
+  vuid = (uint16)getuid();
   mid = pid + 100;
   myumask = umask(0);
   umask(myumask);
index 7f5943cb01fd03097e575d19920851fc5938a21a..8b61567485b99d950e6739971f1e983390821fac 100644 (file)
@@ -57,11 +57,10 @@ BOOL writebraw_supported = False;
 
 extern int DEBUGLEVEL;
 
-int cnum = 0;
-int pid = 0;
-int gid = 0;
-int uid = 0;
-int mid = 0;
+uint16 cnum = 0;
+uint16 pid = 0;
+uint16 vuid = 0;
+uint16 mid = 0;
 
 int max_xmit = BUFFER_SIZE;
 
@@ -80,7 +79,7 @@ setup basics in a outgoing packet
 void cli_setup_pkt(char *outbuf)
 {
   SSVAL(outbuf,smb_pid,pid);
-  SSVAL(outbuf,smb_uid,uid);
+  SSVAL(outbuf,smb_uid,vuid);
   SSVAL(outbuf,smb_mid,mid);
   if (Protocol > PROTOCOL_COREPLUS)
     {
@@ -726,10 +725,10 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
     }
 
     /* use the returned uid from now on */
-    if (SVAL(inbuf,smb_uid) != uid)
+    if (SVAL(inbuf,smb_uid) != vuid)
       DEBUG(3,("Server gave us a UID of %d. We gave %d\n",
-    SVAL(inbuf,smb_uid),uid));
-    opt.server_uid = uid = SVAL(inbuf,smb_uid);
+    SVAL(inbuf,smb_uid),(int)vuid));
+    opt.server_vuid = vuid = SVAL(inbuf,smb_uid);
   }
 
   if (opt.sec_mode & 1) {
index dadccc819d13eb764a43451e5d0fc674ec36d024..60ee0605dba7925c1593e21cca21c60d829a4414 100644 (file)
@@ -80,12 +80,10 @@ extern int DEBUGLEVEL;
 
 BOOL translation = False;
 
-extern int cnum;
-extern int mid;
-extern int pid;
-extern int tid;
-extern int gid;
-extern int uid;
+extern uint16 cnum;
+extern uint16 mid;
+extern uint16 pid;
+extern uint16 vuid;
 
 extern BOOL have_ip;
 extern int max_xmit;
@@ -97,7 +95,7 @@ extern BOOL tar_reset;
 /* clitar bits end */
  
 
-int myumask = 0755;
+mode_t myumask = 0755;
 
 extern pstring scope;
 
@@ -642,9 +640,8 @@ static void usage(char *pname)
   TimeInit();
   charset_initialise();
 
-  pid = getpid();
-  uid = getuid();
-  gid = getgid();
+  pid = (uint16)getpid();
+  uid = (uint16)getuid();
   mid = pid + 100;
   myumask = umask(0);
   umask(myumask);
index dde377f484ba9cf18ce7ce2d181cb387e53e1dc8..2b71b37524741c674aac957034d934746e720744 100644 (file)
@@ -58,10 +58,10 @@ struct pwd_info
 
 struct cli_state {
   int fd;
-  int cnum;
-  int pid;
-  int mid;
-  int uid;
+  uint16 cnum;
+  uint16 pid;
+  uint16 mid;
+  uint16 vuid;
   int protocol;
   int sec_mode;
   int rap_error;
index efe7e663a045dab7a38293603261440709d1b521..8362dcb73fa3b540389433b76b3f3bfe7eaebfff 100644 (file)
@@ -58,7 +58,7 @@ typedef struct pipes_struct
        struct pipes_struct *next, *prev;
        int pnum;
        connection_struct *conn;
-       int uid;
+       uint16 vuid;
        BOOL open; /* open connection */
        uint16 device_state;
        fstring name;
@@ -88,7 +88,7 @@ struct api_struct
 {  
   char *name;
   uint8 opnum;
-  void (*fn) (int uid, prs_struct*, prs_struct*);
+  void (*fn) (uint16 vuid, prs_struct*, prs_struct*);
 };
 
 struct mem_desc
index 38d02beceace43d4e0c18149f9a264d9cdfdd96f..4f29b3ae20cf15b891ca71adefbc0aefd7a5139d 100644 (file)
@@ -5,7 +5,7 @@
 
 /*The following definitions come from  client/client.c  */
 
-void do_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*fn)(file_info *),BOOL recurse_dir, BOOL dirstoo);
+void do_dir(char *inbuf,char *outbuf,char *mask,int attribute,void (*fn)(file_info *),BOOL recurse_dir, BOOL dirstoo);
 char *complete_cmd_null(char *text, int state);
 void complete_process_file(file_info *f);
 char *complete_remote_file(char *text, int state);
@@ -180,13 +180,14 @@ int dos_utime(char *fname,struct utimbuf *times);
 int dos_rename(char *from, char *to);
 int dos_chmod(char *fname,mode_t mode);
 char *dos_getwd(char *s);
-int sys_chown(char *fname,int uid,int gid);
+int sys_chown(char *fname,uid_t uid,gid_t gid);
 int sys_chroot(char *dname);
 struct hostent *sys_gethostbyname(char *name);
 BOOL set_process_capability( uint32 cap_flag, BOOL enable );
 BOOL set_inherited_process_capability( uint32 cap_flag, BOOL enable );
 long sys_random(void);
 void sys_srandom(unsigned int seed);
+int sys_getgroups(int setlen, gid_t *gidset);
 
 /*The following definitions come from  lib/time.c  */
 
@@ -227,7 +228,7 @@ BOOL next_token(char **ptr,char *buff,char *sep, int bufsize);
 char **toktocliplist(int *ctok, char *sep);
 void set_socket_options(int fd, char *options);
 void close_sockets(void );
-BOOL in_group(gid_t group, int current_gid, int ngroups, GID_T *groups);
+BOOL in_group(gid_t group, gid_t current_gid, int ngroups, gid_t *groups);
 char *StrCpy(char *dest,char *src);
 char *StrnCpy(char *dest,char *src,int n);
 void putip(void *dest,void *src);
@@ -315,8 +316,8 @@ BOOL same_net(struct in_addr ip1,struct in_addr ip2,struct in_addr mask);
 int PutUniCode(char *dst,char *src);
 struct hostent *Get_Hostbyname(char *name);
 BOOL process_exists(int pid);
-char *uidtoname(int uid);
-char *gidtoname(int gid);
+char *uidtoname(uid_t uid);
+char *gidtoname(gid_t gid);
 void smb_panic(char *why);
 char *readdirname(void *p);
 BOOL is_in_path(char *name, name_compare_entry *namelist);
@@ -400,7 +401,7 @@ BOOL cli_initialise(struct cli_state *cli);
 void cli_shutdown(struct cli_state *cli);
 void cli_error(struct cli_state *cli, int *eclass, int *num);
 void cli_sockopt(struct cli_state *cli, char *options);
-int cli_setpid(struct cli_state *cli, int pid);
+uint16 cli_setpid(struct cli_state *cli, uint16 pid);
 BOOL cli_reestablish_connection(struct cli_state *cli);
 BOOL cli_establish_connection(struct cli_state *cli, 
                                char *dest_host, struct in_addr *dest_ip,
@@ -482,7 +483,7 @@ void SamOEMhash( unsigned char *data, unsigned char *key, int val);
 void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24);
 void E_md4hash(uchar *passwd, uchar *p16);
 void nt_lm_owf_gen(char *pwd, uchar nt_p16[16], uchar p16[16]);
-void SMBOWFencrypt(uchar passwd[16], char *c8, uchar p24[24]);
+void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
 void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24);
 
 /*The following definitions come from  libsmb/smberr.c  */
@@ -2036,8 +2037,8 @@ BOOL set_challenge(unsigned char *challenge);
 user_struct *get_valid_user_struct(uint16 vuid);
 void invalidate_vuid(uint16 vuid);
 char *validated_username(uint16 vuid);
-int setup_groups(char *user, int uid, int gid, int *p_ngroups, GID_T **p_groups);
-uint16 register_vuid(int uid,int gid, char *unix_name, char *requested_name, BOOL guest);
+int setup_groups(char *user, uid_t uid, gid_t gid, int *p_ngroups, gid_t **p_groups);
+uint16 register_vuid(uid_t uid,gid_t gid, char *unix_name, char *requested_name, BOOL guest);
 void add_session_user(char *user);
 BOOL smb_password_check(char *password, unsigned char *part_passwd, unsigned char *c8);
 BOOL smb_password_ok(struct smb_passwd *smb_pass,
index f42951ec5964b8e6a95715f6dc30efffb2894234..56b0e3bc24bbf45dd944a474e27f2002a269c6bc 100644 (file)
@@ -345,8 +345,8 @@ struct sam_passwd
        char *unknown_str ; /* don't know what this is, yet. */
        char *munged_dial ; /* munged path name and dial-back tel number */
 
-       int smb_userid;       /* this is actually the unix uid_t */
-       int smb_grpid;        /* this is actually the unix gid_t */
+       uid_t smb_userid;       /* this is actually the unix uid_t */
+       gid_t smb_grpid;        /* this is actually the unix gid_t */
        uint32 user_rid;      /* Primary User ID */
        uint32 group_rid;     /* Primary Group ID */
 
@@ -366,7 +366,7 @@ struct sam_passwd
 
 struct smb_passwd
 {
-       int smb_userid;     /* this is actually the unix uid_t */
+       uid_t smb_userid;     /* this is actually the unix uid_t */
        char *smb_name;     /* username string */
 
        unsigned char *smb_passwd; /* Null if no password */
@@ -447,7 +447,7 @@ typedef struct
 
 struct uid_cache {
   int entries;
-  int list[UID_CACHE_SIZE];
+  uid_t list[UID_CACHE_SIZE];
 };
 
 typedef struct
@@ -472,8 +472,8 @@ typedef struct connection_struct
        char *connectpath;
        char *origpath;
        char *user; /* name of user who *opened* this connection */
-       int uid; /* uid of user who *opened* this connection */
-       int gid; /* gid of user who *opened* this connection */
+       uid_t uid; /* uid of user who *opened* this connection */
+       gid_t gid; /* gid of user who *opened* this connection */
 
        uint16 vuid; /* vuid of user who *opened* this connection, or UID_FIELD_INVALID */
 
@@ -481,7 +481,7 @@ typedef struct connection_struct
 
        /* This groups info is valid for the user that *opened* the connection */
        int ngroups;
-       GID_T *groups;
+       gid_t *groups;
        
        time_t lastused;
        BOOL used;
@@ -494,10 +494,11 @@ typedef struct connection_struct
 struct current_user
 {
        connection_struct *conn;
-       int vuid;
-       int uid, gid;
+       uint16 vuid;
+       uid_t uid;
+    gid_t gid;
        int ngroups;
-       GID_T *groups;
+       gid_t *groups;
 };
 
 typedef struct files_struct
@@ -509,7 +510,7 @@ typedef struct files_struct
        SMB_OFF_T pos;
        SMB_OFF_T size;
        mode_t mode;
-       int vuid;
+       uint16 vuid;
        char *mmap_ptr;
        SMB_OFF_T mmap_size;
        write_bmpx_struct *wbmpx_ptr;
@@ -542,8 +543,8 @@ struct dcinfo
 
 typedef struct
 {
-  int uid; /* uid of a validated user */
-  int gid; /* gid of a validated user */
+  uid_t uid; /* uid of a validated user */
+  gid_t gid; /* gid of a validated user */
 
   fstring requested_name; /* user name from the client */
   fstring name; /* unix user name of a validated user */
@@ -553,7 +554,7 @@ typedef struct
   /* following groups stuff added by ih */
   /* This groups info is needed for when we become_user() for this uid */
   int n_groups;
-  GID_T *groups;
+  gid_t *groups;
 
   int n_sids;
   int *sids;
@@ -714,8 +715,8 @@ struct connect_record
   int magic;
   int pid;
   int cnum;
-  int uid;
-  int gid;
+  uid_t uid;
+  gid_t gid;
   char name[24];
   char addr[24];
   char machine[128];
@@ -727,7 +728,7 @@ struct connection_options {
   int protocol;
   /* Connection-Options */
   uint32 max_xmit;
-  uint16 server_uid;
+  uint16 server_vuid;
   uint16 tid;
   /* The following are LANMAN 1.0 options */
   uint16 sec_mode;
index f474633dd110d6b9eb4486ac9b2e340100592589..cae688eb4c395609bf7d589c6b19b6e423555457 100644 (file)
@@ -464,7 +464,7 @@ char *dos_getwd(char *s)
 /*******************************************************************
 chown isn't used much but OS/2 doesn't have it
 ********************************************************************/
-int sys_chown(char *fname,int uid,int gid)
+int sys_chown(char *fname,uid_t uid,gid_t gid)
 {
 #ifndef HAVE_CHOWN
        static int done;
@@ -634,3 +634,51 @@ void sys_srandom(unsigned int seed)
   exit(1);
 #endif
 }
+
+/**************************************************************************
+ Wrapper for getgroups. Deals with broken (int) case.
+****************************************************************************/
+
+int sys_getgroups(int setlen, gid_t *gidset)
+{
+#if !defined(HAVE_BROKEN_GETGROUPS)
+  return getgroups(setlen, gidset);
+#else
+
+  GID_T gid;
+  GID_T *group_list;
+  int i, ngroups;
+
+  if(setlen == 0) {
+    return getgroups(setlen, &gid);
+  }
+
+  /*
+   * Broken case. We need to allocate a
+   * GID_T array of size setlen.
+   */
+
+  if(setlen < 0) {
+    errno = EINVAL; 
+    return -1;
+  } 
+
+  if((group_list = (GID_T *)malloc(setlen * sizoef(GID_T))) == NULL) {
+    DEBUG(0,("sys_getgroups: Malloc fail.\n"));
+    return -1;
+  }
+
+  if((ngroups = getgroups(setlen, group_list)) < 0) {
+    int saved_errno = errno;
+    free((char *)group_list);
+    errno = saved_errno;
+    return -1;
+  }
+
+  for(i = 0; i < ngroups; i++)
+    gidset[i] = (gid_t)group_list[i];
+
+  free((char *)group_list);
+  return ngroups;
+#endif /* HAVE_BROKEN_GETGROUPS */
+}
index 8561c4f3f4a3bd68a9777bdedb6f54f90a5f3f47..37c7a5519ee69bdf61f458f26b0985059c33f029 100644 (file)
@@ -346,7 +346,8 @@ void close_sockets(void )
 /****************************************************************************
 determine whether we are in the specified group
 ****************************************************************************/
-BOOL in_group(gid_t group, int current_gid, int ngroups, GID_T *groups)
+
+BOOL in_group(gid_t group, gid_t current_gid, int ngroups, gid_t *groups)
 {
        int i;
 
@@ -4033,6 +4034,7 @@ struct hostent *Get_Hostbyname(char *name)
 /****************************************************************************
 check if a process exists. Does this work on all unixes?
 ****************************************************************************/
+
 BOOL process_exists(int pid)
 {
        return(kill(pid,0) == 0 || errno != ESRCH);
@@ -4042,24 +4044,26 @@ BOOL process_exists(int pid)
 /*******************************************************************
 turn a uid into a user name
 ********************************************************************/
-char *uidtoname(int uid)
+
+char *uidtoname(uid_t uid)
 {
   static char name[40];
   struct passwd *pass = getpwuid(uid);
   if (pass) return(pass->pw_name);
-  slprintf(name, sizeof(name) - 1, "%d",uid);
+  slprintf(name, sizeof(name) - 1, "%d",(int)uid);
   return(name);
 }
 
 /*******************************************************************
 turn a gid into a group name
 ********************************************************************/
-char *gidtoname(int gid)
+
+char *gidtoname(gid_t gid)
 {
        static char name[40];
        struct group *grp = getgrgid(gid);
        if (grp) return(grp->gr_name);
-       slprintf(name,sizeof(name) - 1, "%d",gid);
+       slprintf(name,sizeof(name) - 1, "%d",(int)gid);
        return(name);
 }
 
index 214f6c4445af026dc5402d3ffe8622e68b1721e8..d77c58e00a9a1218373f6c22670095f3c939a69c 100644 (file)
@@ -118,7 +118,7 @@ static void cli_setup_packet(struct cli_state *cli)
         cli->rap_error = 0;
         cli->nt_error = 0;
        SSVAL(cli->outbuf,smb_pid,cli->pid);
-       SSVAL(cli->outbuf,smb_uid,cli->uid);
+       SSVAL(cli->outbuf,smb_uid,cli->vuid);
        SSVAL(cli->outbuf,smb_mid,cli->mid);
        if (cli->protocol > PROTOCOL_CORE) {
                SCVAL(cli->outbuf,smb_flg,0x8);
@@ -393,7 +393,10 @@ BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation)
        p += 2;
        pstrcpy(p,user);
        strupper(p);
-       p += 21; p++; p += 15; p++; 
+       p += 21;
+    p++;
+    p += 15;
+    p++; 
        pstrcpy(p, workstation); 
        strupper(p);
        p += 16;
@@ -420,8 +423,10 @@ BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation)
                }
        }
        
-       if (rparam) free(rparam);
-       if (rdata) free(rdata);
+       if (rparam)
+      free(rparam);
+       if (rdata)
+      free(rdata);
        return (cli->rap_error == 0);
 }
 
@@ -476,8 +481,10 @@ BOOL cli_RNetShareEnum(struct cli_state *cli, void (*fn)(char *, uint32, char *)
        }
     }
   
-  if (rparam) free(rparam);
-  if (rdata) free(rdata);
+  if (rparam)
+    free(rparam);
+  if (rdata)
+    free(rdata);
 
   return(count>0);
 }
@@ -547,8 +554,10 @@ BOOL cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
                }
        }
   
-       if (rparam) free(rparam);
-       if (rdata) free(rdata);
+       if (rparam)
+      free(rparam);
+       if (rdata)
+      free(rdata);
        
        return(count > 0);
 }
@@ -665,8 +674,8 @@ BOOL cli_session_setup(struct cli_state *cli,
              return False;
       }
 
-      /* use the returned uid from now on */
-      cli->uid = SVAL(cli->inbuf,smb_uid);
+      /* use the returned vuid from now on */
+      cli->vuid = SVAL(cli->inbuf,smb_uid);
 
       return True;
 }
@@ -1690,21 +1699,23 @@ initialise a client structure
 ****************************************************************************/
 BOOL cli_initialise(struct cli_state *cli)
 {
-       if (cli->initialised) cli_shutdown(cli);
+       if (cli->initialised)
+      cli_shutdown(cli);
 
        memset(cli, 0, sizeof(*cli));
        cli->fd = -1;
        cli->cnum = -1;
-       cli->pid = getpid();
+       cli->pid = (uint16)getpid();
        cli->mid = 1;
-       cli->uid = getuid();
+       cli->vuid = UID_FIELD_INVALID;
        cli->protocol = PROTOCOL_NT1;
        cli->timeout = 20000;
        cli->bufsize = 0x10000;
        cli->max_xmit = cli->bufsize - 4;
        cli->outbuf = (char *)malloc(cli->bufsize);
        cli->inbuf = (char *)malloc(cli->bufsize);
-       if (!cli->outbuf || !cli->inbuf) return False;
+       if (!cli->outbuf || !cli->inbuf)
+      return False;
        cli->initialised = 1;
        return True;
 }
@@ -1714,12 +1725,16 @@ shutdown a client structure
 ****************************************************************************/
 void cli_shutdown(struct cli_state *cli)
 {
-       if (cli->outbuf) free(cli->outbuf);
-       if (cli->inbuf) free(cli->inbuf);
+       if (cli->outbuf)
+      free(cli->outbuf);
+       if (cli->inbuf)
+      free(cli->inbuf);
 #ifdef WITH_SSL
-    if (cli->fd != -1) sslutil_disconnect(cli->fd);
+    if (cli->fd != -1)
+      sslutil_disconnect(cli->fd);
 #endif /* WITH_SSL */
-       if (cli->fd != -1) close(cli->fd);
+       if (cli->fd != -1) 
+      close(cli->fd);
        memset(cli, 0, sizeof(*cli));
 }
 
@@ -1743,9 +1758,9 @@ void cli_sockopt(struct cli_state *cli, char *options)
 /****************************************************************************
 set the PID to use for smb messages. Return the old pid.
 ****************************************************************************/
-int cli_setpid(struct cli_state *cli, int pid)
+uint16 cli_setpid(struct cli_state *cli, uint16 pid)
 {
-       int ret = cli->pid;
+       uint16 ret = cli->pid;
        cli->pid = pid;
        return ret;
 }
@@ -1826,14 +1841,16 @@ BOOL cli_establish_connection(struct cli_state *cli,
        if (!cli_session_request(cli, calling, called))
        {
                DEBUG(1,("failed session request\n"));
-               if (do_shutdown) cli_shutdown(cli);
+               if (do_shutdown)
+          cli_shutdown(cli);
                return False;
        }
 
        if (!cli_negprot(cli))
        {
                DEBUG(1,("failed negprot\n"));
-               if (do_shutdown) cli_shutdown(cli);
+               if (do_shutdown)
+          cli_shutdown(cli);
                return False;
        }
 
@@ -1852,7 +1869,8 @@ BOOL cli_establish_connection(struct cli_state *cli,
                               cli->domain))
                {
                        DEBUG(1,("failed session setup\n"));
-                       if (do_shutdown) cli_shutdown(cli);
+                       if (do_shutdown)
+              cli_shutdown(cli);
                        return False;
                }
                if (do_tcon)
@@ -1861,7 +1879,8 @@ BOOL cli_establish_connection(struct cli_state *cli,
                                            (char*)passwd, strlen(passwd)))
                        {
                                DEBUG(1,("failed tcon_X\n"));
-                               if (do_shutdown) cli_shutdown(cli);
+                               if (do_shutdown)
+                  cli_shutdown(cli);
                                return False;
                        }
                }
@@ -1883,7 +1902,8 @@ BOOL cli_establish_connection(struct cli_state *cli,
                               cli->domain))
                {
                        DEBUG(1,("failed session setup\n"));
-                       if (do_shutdown) cli_shutdown(cli);
+                       if (do_shutdown)
+              cli_shutdown(cli);
                        return False;
                }
 
@@ -1893,13 +1913,15 @@ BOOL cli_establish_connection(struct cli_state *cli,
                                            (char*)nt_sess_pwd, sizeof(nt_sess_pwd)))
                        {
                                DEBUG(1,("failed tcon_X\n"));
-                               if (do_shutdown) cli_shutdown(cli);
+                               if (do_shutdown)
+                  cli_shutdown(cli);
                                return False;
                        }
                }
        }
 
-       if (do_shutdown) cli_shutdown(cli);
+       if (do_shutdown)
+      cli_shutdown(cli);
 
        return True;
 }
index 045008fac91a7325b0312046c05eafe86d200936..5a946e22c9d8cc9bb557ee562f90e0d4514e0896 100644 (file)
@@ -121,7 +121,7 @@ void nt_lm_owf_gen(char *pwd, uchar nt_p16[16], uchar p16[16])
 }
 
 /* Does the des encryption from the NT or LM MD4 hash. */
-void SMBOWFencrypt(uchar passwd[16], char *c8, uchar p24[24])
+void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24])
 {
        uchar p21[21];
  
index 35ceeace04f560b29510d905f4d431d4d330cf9a..85e10275b88069f28eb832356e459f695f23fbe8 100644 (file)
@@ -286,7 +286,7 @@ static void lsa_reply_lookup_rids(prs_struct *rdata,
 /***************************************************************************
 api_lsa_open_policy
  ***************************************************************************/
-static void api_lsa_open_policy( int uid, prs_struct *data,
+static void api_lsa_open_policy( uint16 vuid, prs_struct *data,
                              prs_struct *rdata )
 {
        LSA_Q_OPEN_POL q_o;
@@ -305,7 +305,7 @@ static void api_lsa_open_policy( int uid, prs_struct *data,
 /***************************************************************************
 api_lsa_enum_trust_dom
  ***************************************************************************/
-static void api_lsa_enum_trust_dom( int uid, prs_struct *data,
+static void api_lsa_enum_trust_dom( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        LSA_Q_ENUM_TRUST_DOM q_e;
@@ -316,14 +316,13 @@ static void api_lsa_enum_trust_dom( int uid, prs_struct *data,
        lsa_io_q_enum_trust_dom("", &q_e, data, 0);
 
        /* construct reply.  return status is always 0x0 */
-       lsa_reply_enum_trust_dom(&q_e, rdata,
-                                             0, NULL, NULL);
+       lsa_reply_enum_trust_dom(&q_e, rdata, 0, NULL, NULL);
 }
 
 /***************************************************************************
 api_lsa_query_info
  ***************************************************************************/
-static void api_lsa_query_info( int uid, prs_struct *data,
+static void api_lsa_query_info( uint16 vuid, prs_struct *data,
                                 prs_struct *rdata )
 {
        LSA_Q_QUERY_INFO q_i;
@@ -343,7 +342,7 @@ static void api_lsa_query_info( int uid, prs_struct *data,
 /***************************************************************************
 api_lsa_lookup_sids
  ***************************************************************************/
-static void api_lsa_lookup_sids( int uid, prs_struct *data,
+static void api_lsa_lookup_sids( uint16 vuid, prs_struct *data,
                                  prs_struct *rdata )
 {
        LSA_Q_LOOKUP_SIDS q_l;
@@ -363,20 +362,20 @@ static void api_lsa_lookup_sids( int uid, prs_struct *data,
        pstrcpy(dom_name, lp_workgroup());
 
        string_to_sid(&sid_S_1_1, "S-1-1");
-        string_to_sid(&sid_S_1_3, "S-1-3");
-        string_to_sid(&sid_S_1_5, "S-1-5");
+    string_to_sid(&sid_S_1_3, "S-1-3");
+    string_to_sid(&sid_S_1_5, "S-1-5");
 
        /* construct reply.  return status is always 0x0 */
-       lsa_reply_lookup_sids(rdata,
-                              q_l.sids.num_entries, q_l.sids.sid, /* SIDs */
-                              dom_name, &global_machine_sid, /* domain name, domain SID */
-                              &sid_S_1_1, &sid_S_1_3, &sid_S_1_5); /* the three other SIDs */
+    lsa_reply_lookup_sids(rdata,
+                          q_l.sids.num_entries, q_l.sids.sid, /* SIDs */
+                          dom_name, &global_machine_sid, /* domain name, domain SID */
+                          &sid_S_1_1, &sid_S_1_3, &sid_S_1_5); /* the three other SIDs */
 }
 
 /***************************************************************************
 api_lsa_lookup_names
  ***************************************************************************/
-static void api_lsa_lookup_names( int uid, prs_struct *data,
+static void api_lsa_lookup_names( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata )
 {
        int i;
@@ -400,8 +399,8 @@ static void api_lsa_lookup_names( int uid, prs_struct *data,
        pstrcpy(dom_name, lp_workgroup());
 
        string_to_sid(&sid_S_1_1, "S-1-1");
-        string_to_sid(&sid_S_1_3, "S-1-3");
-        string_to_sid(&sid_S_1_5, "S-1-5");
+    string_to_sid(&sid_S_1_3, "S-1-3");
+    string_to_sid(&sid_S_1_5, "S-1-5");
 
        SMB_ASSERT_ARRAY(q_l.lookup_name, q_l.num_entries);
 
@@ -437,18 +436,24 @@ static void api_lsa_lookup_names( int uid, prs_struct *data,
 /***************************************************************************
  api_lsa_close
  ***************************************************************************/
-static void api_lsa_close( int uid, prs_struct *data,
+static void api_lsa_close( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata)
 {
        /* XXXX this is NOT good */
        char *q = mem_data(&(rdata->data), rdata->offset);
 
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0); 
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
 
        rdata->offset += 24;
 }
@@ -456,18 +461,24 @@ static void api_lsa_close( int uid, prs_struct *data,
 /***************************************************************************
  api_lsa_open_secret
  ***************************************************************************/
-static void api_lsa_open_secret( int uid, prs_struct *data,
+static void api_lsa_open_secret( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata)
 {
        /* XXXX this is NOT good */
        char *q = mem_data(&(rdata->data), rdata->offset);
 
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0xC0000000 | NT_STATUS_OBJECT_NAME_NOT_FOUND); q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0xC0000000 | NT_STATUS_OBJECT_NAME_NOT_FOUND);
+    q += 4;
        
        rdata->offset += 24;
 }
@@ -494,4 +505,3 @@ BOOL api_ntlsa_rpc(pipes_struct *p, prs_struct *data)
 {
        return api_rpcTNP(p, "api_ntlsa_rpc", api_lsa_cmds, data);
 }
-
index 35ceeace04f560b29510d905f4d431d4d330cf9a..85e10275b88069f28eb832356e459f695f23fbe8 100644 (file)
@@ -286,7 +286,7 @@ static void lsa_reply_lookup_rids(prs_struct *rdata,
 /***************************************************************************
 api_lsa_open_policy
  ***************************************************************************/
-static void api_lsa_open_policy( int uid, prs_struct *data,
+static void api_lsa_open_policy( uint16 vuid, prs_struct *data,
                              prs_struct *rdata )
 {
        LSA_Q_OPEN_POL q_o;
@@ -305,7 +305,7 @@ static void api_lsa_open_policy( int uid, prs_struct *data,
 /***************************************************************************
 api_lsa_enum_trust_dom
  ***************************************************************************/
-static void api_lsa_enum_trust_dom( int uid, prs_struct *data,
+static void api_lsa_enum_trust_dom( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        LSA_Q_ENUM_TRUST_DOM q_e;
@@ -316,14 +316,13 @@ static void api_lsa_enum_trust_dom( int uid, prs_struct *data,
        lsa_io_q_enum_trust_dom("", &q_e, data, 0);
 
        /* construct reply.  return status is always 0x0 */
-       lsa_reply_enum_trust_dom(&q_e, rdata,
-                                             0, NULL, NULL);
+       lsa_reply_enum_trust_dom(&q_e, rdata, 0, NULL, NULL);
 }
 
 /***************************************************************************
 api_lsa_query_info
  ***************************************************************************/
-static void api_lsa_query_info( int uid, prs_struct *data,
+static void api_lsa_query_info( uint16 vuid, prs_struct *data,
                                 prs_struct *rdata )
 {
        LSA_Q_QUERY_INFO q_i;
@@ -343,7 +342,7 @@ static void api_lsa_query_info( int uid, prs_struct *data,
 /***************************************************************************
 api_lsa_lookup_sids
  ***************************************************************************/
-static void api_lsa_lookup_sids( int uid, prs_struct *data,
+static void api_lsa_lookup_sids( uint16 vuid, prs_struct *data,
                                  prs_struct *rdata )
 {
        LSA_Q_LOOKUP_SIDS q_l;
@@ -363,20 +362,20 @@ static void api_lsa_lookup_sids( int uid, prs_struct *data,
        pstrcpy(dom_name, lp_workgroup());
 
        string_to_sid(&sid_S_1_1, "S-1-1");
-        string_to_sid(&sid_S_1_3, "S-1-3");
-        string_to_sid(&sid_S_1_5, "S-1-5");
+    string_to_sid(&sid_S_1_3, "S-1-3");
+    string_to_sid(&sid_S_1_5, "S-1-5");
 
        /* construct reply.  return status is always 0x0 */
-       lsa_reply_lookup_sids(rdata,
-                              q_l.sids.num_entries, q_l.sids.sid, /* SIDs */
-                              dom_name, &global_machine_sid, /* domain name, domain SID */
-                              &sid_S_1_1, &sid_S_1_3, &sid_S_1_5); /* the three other SIDs */
+    lsa_reply_lookup_sids(rdata,
+                          q_l.sids.num_entries, q_l.sids.sid, /* SIDs */
+                          dom_name, &global_machine_sid, /* domain name, domain SID */
+                          &sid_S_1_1, &sid_S_1_3, &sid_S_1_5); /* the three other SIDs */
 }
 
 /***************************************************************************
 api_lsa_lookup_names
  ***************************************************************************/
-static void api_lsa_lookup_names( int uid, prs_struct *data,
+static void api_lsa_lookup_names( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata )
 {
        int i;
@@ -400,8 +399,8 @@ static void api_lsa_lookup_names( int uid, prs_struct *data,
        pstrcpy(dom_name, lp_workgroup());
 
        string_to_sid(&sid_S_1_1, "S-1-1");
-        string_to_sid(&sid_S_1_3, "S-1-3");
-        string_to_sid(&sid_S_1_5, "S-1-5");
+    string_to_sid(&sid_S_1_3, "S-1-3");
+    string_to_sid(&sid_S_1_5, "S-1-5");
 
        SMB_ASSERT_ARRAY(q_l.lookup_name, q_l.num_entries);
 
@@ -437,18 +436,24 @@ static void api_lsa_lookup_names( int uid, prs_struct *data,
 /***************************************************************************
  api_lsa_close
  ***************************************************************************/
-static void api_lsa_close( int uid, prs_struct *data,
+static void api_lsa_close( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata)
 {
        /* XXXX this is NOT good */
        char *q = mem_data(&(rdata->data), rdata->offset);
 
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0); 
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
 
        rdata->offset += 24;
 }
@@ -456,18 +461,24 @@ static void api_lsa_close( int uid, prs_struct *data,
 /***************************************************************************
  api_lsa_open_secret
  ***************************************************************************/
-static void api_lsa_open_secret( int uid, prs_struct *data,
+static void api_lsa_open_secret( uint16 vuid, prs_struct *data,
                                   prs_struct *rdata)
 {
        /* XXXX this is NOT good */
        char *q = mem_data(&(rdata->data), rdata->offset);
 
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0); q += 4;
-       SIVAL(q, 0, 0xC0000000 | NT_STATUS_OBJECT_NAME_NOT_FOUND); q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0);
+    q += 4;
+       SIVAL(q, 0, 0xC0000000 | NT_STATUS_OBJECT_NAME_NOT_FOUND);
+    q += 4;
        
        rdata->offset += 24;
 }
@@ -494,4 +505,3 @@ BOOL api_ntlsa_rpc(pipes_struct *p, prs_struct *data)
 {
        return api_rpcTNP(p, "api_ntlsa_rpc", api_lsa_cmds, data);
 }
-
index cb22cfddf0256582e2418596ada05b5ea779885a..17a534b6f02c88985e9e47e864f8b0c8ba5ce376 100644 (file)
@@ -267,7 +267,7 @@ static BOOL get_md4pw(char *md4pw, char *mach_name, char *mach_acct)
 /*************************************************************************
  api_net_req_chal:
  *************************************************************************/
-static void api_net_req_chal( int uid,
+static void api_net_req_chal( uint16 vuid,
                               prs_struct *data,
                               prs_struct *rdata)
 {
@@ -279,9 +279,10 @@ static void api_net_req_chal( int uid,
 
        user_struct *vuser;
 
-       DEBUG(5,("api_net_req_chal(%d): vuid %d\n", __LINE__, uid));
+       DEBUG(5,("api_net_req_chal(%d): vuid %d\n", __LINE__, (int)vuid));
 
-       if ((vuser = get_valid_user_struct(uid)) == NULL) return;
+       if ((vuser = get_valid_user_struct(vuid)) == NULL)
+      return;
 
        /* grab the challenge... */
        net_io_q_req_chal("", &q_r, data, 0);
@@ -327,7 +328,7 @@ static void api_net_req_chal( int uid,
 /*************************************************************************
  api_net_auth_2:
  *************************************************************************/
-static void api_net_auth_2( int uid,
+static void api_net_auth_2( uint16 vuid,
                             prs_struct *data,
                             prs_struct *rdata)
 {
@@ -339,7 +340,8 @@ static void api_net_auth_2( int uid,
 
        user_struct *vuser;
 
-       if ((vuser = get_valid_user_struct(uid)) == NULL) return;
+       if ((vuser = get_valid_user_struct(vuid)) == NULL)
+      return;
 
        srv_time.time = 0;
 
@@ -371,7 +373,7 @@ static void api_net_auth_2( int uid,
 /*************************************************************************
  api_net_srv_pwset:
  *************************************************************************/
-static void api_net_srv_pwset( int uid,
+static void api_net_srv_pwset( uint16 vuid,
                                prs_struct *data,
                                prs_struct *rdata)
 {
@@ -383,7 +385,8 @@ static void api_net_srv_pwset( int uid,
        BOOL ret;
        user_struct *vuser;
 
-       if ((vuser = get_valid_user_struct(uid)) == NULL) return;
+       if ((vuser = get_valid_user_struct(vuid)) == NULL)
+      return;
 
        /* grab the challenge and encrypted password ... */
        net_io_q_srv_pwset("", &q_a, data, 0);
@@ -452,7 +455,7 @@ static void api_net_srv_pwset( int uid,
 /*************************************************************************
  api_net_sam_logoff:
  *************************************************************************/
-static void api_net_sam_logoff( int uid,
+static void api_net_sam_logoff( uint16 vuid,
                                prs_struct *data,
                                prs_struct *rdata)
 {
@@ -463,7 +466,8 @@ static void api_net_sam_logoff( int uid,
 
        user_struct *vuser;
 
-       if ((vuser = get_valid_user_struct(uid)) == NULL) return;
+       if ((vuser = get_valid_user_struct(vuid)) == NULL)
+      return;
 
        /* the DOM_ID_INFO_1 structure is a bit big.  plus we might want to
           dynamically allocate it inside net_io_q_sam_logon, at some point */
@@ -572,7 +576,7 @@ static uint32 net_login_network(NET_ID_INFO_2 *id2,
 /*************************************************************************
  api_net_sam_logon:
  *************************************************************************/
-static void api_net_sam_logon( int uid,
+static void api_net_sam_logon( uint16 vuid,
                                prs_struct *data,
                                prs_struct *rdata)
 {
@@ -586,7 +590,7 @@ static void api_net_sam_logon( int uid,
 
   user_struct *vuser = NULL;
 
-  if ((vuser = get_valid_user_struct(uid)) == NULL)
+  if ((vuser = get_valid_user_struct(vuid)) == NULL)
     return;
 
   q_l.sam_id.ctr = &ctr;
@@ -795,7 +799,7 @@ static void api_net_sam_logon( int uid,
 /*************************************************************************
  api_net_trust_dom_list:
  *************************************************************************/
-static void api_net_trust_dom_list( int uid,
+static void api_net_trust_dom_list( uint16 vuid,
                                  prs_struct *data,
                                  prs_struct *rdata)
 {
@@ -825,7 +829,7 @@ static void api_net_trust_dom_list( int uid,
 /*************************************************************************
  api_net_logon_ctrl2:
  *************************************************************************/
-static void api_net_logon_ctrl2( int uid,
+static void api_net_logon_ctrl2( uint16 vuid,
                                  prs_struct *data,
                                  prs_struct *rdata)
 {
index cf7fc9334eca4738898e08ffb8a398ae3f316e0f..301510730b8c7f1203171be72fcc1eac7ab5249a 100644 (file)
@@ -112,7 +112,7 @@ pipes_struct *open_rpc_pipe_p(char *pipe_name,
        p->open = True;
        p->device_state = 0;
        p->conn = conn;
-       p->uid  = vuid;
+       p->vuid  = vuid;
        
        p->rhdr.data  = NULL;
        p->rdata.data = NULL;
index 3f9cdc20f49c79e0690ab4214571c889d1beed26..c153a78ee13dd031d0060062d3d8d39fb8b78322 100644 (file)
@@ -61,7 +61,7 @@ static void reg_reply_close(REG_Q_CLOSE *q_r,
 /*******************************************************************
  api_reg_close
  ********************************************************************/
-static void api_reg_close( int uid, prs_struct *data,
+static void api_reg_close( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_CLOSE q_r;
@@ -100,7 +100,7 @@ static void reg_reply_open(REG_Q_OPEN_POLICY *q_r,
 /*******************************************************************
  api_reg_open
  ********************************************************************/
-static void api_reg_open( int uid, prs_struct *data,
+static void api_reg_open( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_OPEN_POLICY q_u;
@@ -160,7 +160,7 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u,
 /*******************************************************************
  api_reg_open_entry
  ********************************************************************/
-static void api_reg_open_entry( int uid, prs_struct *data,
+static void api_reg_open_entry( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_OPEN_ENTRY q_u;
@@ -205,7 +205,7 @@ static void reg_reply_info(REG_Q_INFO *q_u,
 /*******************************************************************
  api_reg_info
  ********************************************************************/
-static void api_reg_info( int uid, prs_struct *data,
+static void api_reg_info( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_INFO q_u;
index c2140db36f8be4f526a8b359c9178fe73b232a66..2516637599538f95f04065b697717f2c08286de5 100644 (file)
@@ -131,7 +131,7 @@ static void samr_reply_close_hnd(SAMR_Q_CLOSE_HND *q_u,
 /*******************************************************************
  api_samr_close_hnd
  ********************************************************************/
-static void api_samr_close_hnd( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_close_hnd( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_CLOSE_HND q_u;
 
@@ -190,7 +190,7 @@ static void samr_reply_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
 /*******************************************************************
  api_samr_open_domain
  ********************************************************************/
-static void api_samr_open_domain( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_open_domain( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_OPEN_DOMAIN q_u;
 
@@ -266,7 +266,7 @@ static void samr_reply_unknown_3(SAMR_Q_UNKNOWN_3 *q_u,
 /*******************************************************************
  api_samr_unknown_3
  ********************************************************************/
-static void api_samr_unknown_3( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_unknown_3( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_UNKNOWN_3 q_u;
 
@@ -318,7 +318,7 @@ static void samr_reply_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_u,
 /*******************************************************************
  api_samr_enum_dom_users
  ********************************************************************/
-static void api_samr_enum_dom_users( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_enum_dom_users( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_ENUM_DOM_USERS q_e;
 
@@ -373,7 +373,7 @@ static void samr_reply_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_u,
 /*******************************************************************
  api_samr_enum_dom_groups
  ********************************************************************/
-static void api_samr_enum_dom_groups( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_enum_dom_groups( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_ENUM_DOM_GROUPS q_e;
 
@@ -428,7 +428,7 @@ static void samr_reply_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_u,
 /*******************************************************************
  api_samr_enum_dom_aliases
  ********************************************************************/
-static void api_samr_enum_dom_aliases( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_enum_dom_aliases( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_ENUM_DOM_ALIASES q_e;
 
@@ -512,7 +512,7 @@ static void samr_reply_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_u,
 /*******************************************************************
  api_samr_query_dispinfo
  ********************************************************************/
-static void api_samr_query_dispinfo( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_query_dispinfo( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_QUERY_DISPINFO q_e;
 
@@ -565,7 +565,7 @@ static void samr_reply_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_u,
 /*******************************************************************
  api_samr_query_aliasinfo
  ********************************************************************/
-static void api_samr_query_aliasinfo( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_query_aliasinfo( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_QUERY_ALIASINFO q_e;
 
@@ -642,7 +642,7 @@ static void samr_reply_lookup_ids(SAMR_Q_LOOKUP_IDS *q_u,
 /*******************************************************************
  api_samr_lookup_ids
  ********************************************************************/
-static void api_samr_lookup_ids( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_lookup_ids( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_LOOKUP_IDS q_u;
 
@@ -701,7 +701,7 @@ static void samr_reply_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u,
 /*******************************************************************
  api_samr_lookup_names
  ********************************************************************/
-static void api_samr_lookup_names( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_lookup_names( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_LOOKUP_NAMES q_u;
 
@@ -762,7 +762,7 @@ static void samr_reply_unknown_12(SAMR_Q_UNKNOWN_12 *q_u,
 /*******************************************************************
  api_samr_unknown_12
  ********************************************************************/
-static void api_samr_unknown_12( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_unknown_12( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_UNKNOWN_12 q_u;
 
@@ -836,7 +836,7 @@ static void samr_reply_open_user(SAMR_Q_OPEN_USER *q_u,
 /*******************************************************************
  api_samr_open_user
  ********************************************************************/
-static void api_samr_open_user( int rid, prs_struct *data, prs_struct *rdata)
+static void api_samr_open_user( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_OPEN_USER q_u;
 
@@ -1004,7 +1004,7 @@ static void samr_reply_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
 /*******************************************************************
  api_samr_query_userinfo
  ********************************************************************/
-static void api_samr_query_userinfo( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_query_userinfo( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_QUERY_USERINFO q_u;
 
@@ -1082,7 +1082,7 @@ static void samr_reply_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
 /*******************************************************************
  api_samr_query_usergroups
  ********************************************************************/
-static void api_samr_query_usergroups( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_query_usergroups( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_QUERY_USERGROUPS q_u;
        /* grab the samr unknown 32 */
@@ -1128,7 +1128,7 @@ static void samr_reply_unknown_32(SAMR_Q_UNKNOWN_32 *q_u,
 /*******************************************************************
  api_samr_unknown_32
  ********************************************************************/
-static void api_samr_unknown_32( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_unknown_32( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        uint32 status = 0;
        struct sam_passwd *sam_pass;
@@ -1211,7 +1211,7 @@ static void samr_reply_connect(SAMR_Q_CONNECT *q_u,
 /*******************************************************************
  api_samr_connect
  ********************************************************************/
-static void api_samr_connect( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_connect( uint16 vuid, prs_struct *data, prs_struct *rdata)
 {
        SAMR_Q_CONNECT q_u;
 
@@ -1264,7 +1264,7 @@ static void samr_reply_open_alias(SAMR_Q_OPEN_ALIAS *q_u,
 /*******************************************************************
  api_samr_open_alias
  ********************************************************************/
-static void api_samr_open_alias( int uid, prs_struct *data, prs_struct *rdata)
+static void api_samr_open_alias( uint16 vuid, prs_struct *data, prs_struct *rdata)
                                 
 {
        SAMR_Q_OPEN_ALIAS q_u;
index a4ae3fa0efea8ea7374198ca2a9a80a531f38bed..c7aeee9b117ef25eb85481aa5a70ee1ce727a02b 100644 (file)
@@ -904,7 +904,7 @@ static void srv_reply_net_srv_get_info(SRV_Q_NET_SRV_GET_INFO *q_n,
 
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_srv_get_info( int uid, prs_struct *data,
+static void api_srv_net_srv_get_info( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_SRV_GET_INFO q_n;
@@ -919,7 +919,7 @@ static void api_srv_net_srv_get_info( int uid, prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_file_enum( int uid, prs_struct *data,
+static void api_srv_net_file_enum( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_FILE_ENUM q_n;
@@ -937,7 +937,7 @@ static void api_srv_net_file_enum( int uid, prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_conn_enum( int uid, prs_struct *data,
+static void api_srv_net_conn_enum( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_CONN_ENUM q_n;
@@ -955,7 +955,7 @@ static void api_srv_net_conn_enum( int uid, prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_sess_enum( int uid, prs_struct *data,
+static void api_srv_net_sess_enum( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_SESS_ENUM q_n;
@@ -973,7 +973,7 @@ static void api_srv_net_sess_enum( int uid, prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_share_enum( int uid, prs_struct *data,
+static void api_srv_net_share_enum( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_SHARE_ENUM q_n;
@@ -1029,7 +1029,7 @@ static void srv_reply_net_remote_tod(SRV_Q_NET_REMOTE_TOD *q_n,
 }
 /*******************************************************************
 ********************************************************************/
-static void api_srv_net_remote_tod( int uid, prs_struct *data,
+static void api_srv_net_remote_tod( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        SRV_Q_NET_REMOTE_TOD q_n;
index 3c0fc9271e4d03b25f4f74c5baee4bce47bacada..fc78c656fd28817be5f5c062a4fca4aa6156d319 100644 (file)
@@ -246,7 +246,7 @@ static BOOL api_rpc_command(pipes_struct *p,
 
        /* do the actual command */
        p->rdata.offset = 0; 
-       api_rpc_cmds[fn_num].fn(p->uid, data, &(p->rdata));
+       api_rpc_cmds[fn_num].fn(p->vuid, data, &(p->rdata));
 
        if (p->rdata.data == NULL || p->rdata.offset == 0)
        {
index 5bea006b2cdf91fff50f83a66b94a4533e9654b3..acb5cde831f045329278b75d4ad33dcacc0c1d0b 100644 (file)
@@ -80,7 +80,7 @@ static void wks_reply_query_info(WKS_Q_QUERY_INFO *q_u,
 /*******************************************************************
  api_wks_query_info
  ********************************************************************/
-static void api_wks_query_info( int uid, prs_struct *data,
+static void api_wks_query_info( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        WKS_Q_QUERY_INFO q_u;
index 292114410838ba5d0899e1ee97712174cec3cb41..4918610d88fe8440a641a83a3c84828bf55ddde3 100644 (file)
@@ -739,7 +739,7 @@ enum client_action
        {
                case CLIENT_IPC:
                {
-                       process(&cli_info, cmd_str) ? 0 : 1;
+                       process(&cli_info, cmd_str);
                        break;
                }
 
index ec126c89ff452c70c461a50157a6f4f72b5c835b..db6ee62f9180b8cfcc1dfb566f7906f2374b2ba8 100644 (file)
@@ -2383,7 +2383,7 @@ static BOOL api_RNetUserGetInfo(connection_struct *conn,uint16 vuid, char *param
        Don't depend on vuser being non-null !!. JRA */
     user_struct *vuser = get_valid_user_struct(vuid);
     if(vuser != NULL)
-      DEBUG(3,("  Username of UID %d is %s\n", vuser->uid, vuser->name));
+      DEBUG(3,("  Username of UID %d is %s\n", (int)vuser->uid, vuser->name));
 
     *rparam_len = 6;
     *rparam = REALLOC(*rparam,*rparam_len);
index f542dbe608932d0296836c1676d34115b2a5ab39..5a7e20e47edf6e2da45a04b0e8a99012adabbdc6 100644 (file)
@@ -107,7 +107,7 @@ user_struct *get_valid_user_struct(uint16 vuid)
     return NULL;
   vuid -= VUID_OFFSET;
   if ((vuid >= (uint16)num_validated_users) || 
-     (validated_users[vuid].uid == -1) || (validated_users[vuid].gid == -1))
+     (validated_users[vuid].uid == (uid_t)-1) || (validated_users[vuid].gid == (gid_t)-1))
     return NULL;
   return &validated_users[vuid];
 }
@@ -121,17 +121,19 @@ void invalidate_vuid(uint16 vuid)
 
   if (vuser == NULL) return;
 
-  vuser->uid = -1;
-  vuser->gid = -1;
+  vuser->uid = (uid_t)-1;
+  vuser->gid = (gid_t)-1;
 
   vuser->n_sids = 0;
 
   /* same number of igroups as groups */
   vuser->n_groups = 0;
 
-  if (vuser->groups) free(vuser->groups);
+  if (vuser->groups)
+    free((char *)vuser->groups);
 
-  if (vuser->sids) free(vuser->sids);
+  if (vuser->sids)
+    free((char *)vuser->sids);
 
   vuser->sids    = NULL;
   vuser->groups  = NULL;
@@ -153,11 +155,11 @@ char *validated_username(uint16 vuid)
 /****************************************************************************
 Setup the groups a user belongs to.
 ****************************************************************************/
-int setup_groups(char *user, int uid, int gid, int *p_ngroups, GID_T **p_groups)
+int setup_groups(char *user, uid_t uid, gid_t gid, int *p_ngroups, gid_t **p_groups)
 {
        int i,ngroups;
-       GID_T *groups;
-       GID_T grp = 0;
+       gid_t grp = 0;
+    gid_t *groups = NULL;
 
        if (-1 == initgroups(user,gid)) {
                if (getuid() == 0) {
@@ -170,15 +172,18 @@ int setup_groups(char *user, int uid, int gid, int *p_ngroups, GID_T **p_groups)
                return -1;
        }
 
-       ngroups = getgroups(0,&grp);
-       if (ngroups <= 0) ngroups = 32;
+       ngroups = sys_getgroups(0,&grp);
+       if (ngroups <= 0)
+      ngroups = 32;
 
-       groups = (GID_T *)malloc(sizeof(groups[0])*ngroups);
+    if((groups = (gid_t *)malloc(sizeof(gid_t)*ngroups)) == NULL) {
+      DEBUG(0,("setup_groups malloc fail !\n"));
+      return -1;
+    }
 
-       ngroups = getgroups(ngroups,(gid_t *)groups);
+    ngroups = sys_getgroups(ngroups,groups);
 
        (*p_ngroups) = ngroups;
-
        (*p_groups) = groups;
 
        DEBUG( 3, ( "%s is in %d groups: ", user, ngroups ) );
@@ -196,7 +201,7 @@ register a uid/name pair as being valid and that a valid password
 has been given. vuid is biased by an offset. This allows us to
 tell random client vuid's (normally zero) from valid vuids.
 ****************************************************************************/
-uint16 register_vuid(int uid,int gid, char *unix_name, char *requested_name, BOOL guest)
+uint16 register_vuid(uid_t uid,gid_t gid, char *unix_name, char *requested_name, BOOL guest)
 {
   user_struct *vuser;
   struct passwd *pwfile; /* for getting real name from passwd file */
@@ -258,7 +263,7 @@ uint16 register_vuid(int uid,int gid, char *unix_name, char *requested_name, BOO
               &vuser->n_groups,
               &vuser->groups);
 
-  DEBUG(3,("uid %d registered to name %s\n",uid,unix_name));
+  DEBUG(3,("uid %d registered to name %s\n",(int)uid,unix_name));
 
   DEBUG(3, ("Clearing default real name\n"));
   fstrcpy(vuser->real_name, "<Full Name>\0");
index b0c74aa53e778552ab4c9d807235efdf6d14f7b2..ee195e12ec0cdd1c67ad37cf6339ced43c430635 100644 (file)
@@ -485,7 +485,7 @@ connection_struct *make_connection(char *service,char *user,char *password, int
                dbgtext( "%s (%s) ", remote_machine, client_addr(Client) );
                dbgtext( "connect to service %s ", lp_servicename(SNUM(conn)) );
                dbgtext( "as user %s ", user );
-               dbgtext( "(uid=%d, gid=%d) ", conn->uid, conn->gid );
+               dbgtext( "(uid=%d, gid=%d) ", (int)conn->uid, (int)conn->gid );
                dbgtext( "(pid %d)\n", (int)getpid() );
        }
        
index 4ffec90521cec89aa9e2ed6a3ecc10999830067e..7cd8c8673cbad1a0d2a63d83dc4e0fea303741dc 100644 (file)
@@ -23,8 +23,8 @@
 
 extern int DEBUGLEVEL;
 
-static int initial_uid;
-static int initial_gid;
+static uid_t initial_uid;
+static gid_t initial_gid;
 
 /* what user is current? */
 extern struct current_user current_user;
@@ -61,17 +61,16 @@ void init_uid(void)
 /****************************************************************************
   become the specified uid 
 ****************************************************************************/
-static BOOL become_uid(int uid)
+static BOOL become_uid(uid_t uid)
 {
        if (initial_uid != 0) {
                return(True);
        }
        
-       if (uid == -1 || uid == 65535) {
+       if (uid == (uid_t)-1 || ((sizeof(uid_t) == 2) && (uid == (uid_t)65535))) {
                static int done;
                if (!done) {
-                       DEBUG(1,("WARNING: using uid %d is a security risk\n",
-                                uid));
+                       DEBUG(1,("WARNING: using uid %d is a security risk\n",(int)uid));
                        done=1;
                }
        }
@@ -79,9 +78,9 @@ static BOOL become_uid(int uid)
 #ifdef HAVE_TRAPDOOR_UID
 #ifdef HAVE_SETUIDX
        /* AIX3 has setuidx which is NOT a trapoor function (tridge) */
-       if (setuidx(ID_EFFECTIVE, (uid_t)uid) != 0) {
-               if (seteuid((uid_t)uid) != 0) {
-                       DEBUG(1,("Can't set uid (setuidx)\n"));
+       if (setuidx(ID_EFFECTIVE, uid) != 0) {
+               if (seteuid(uid) != 0) {
+                       DEBUG(1,("Can't set uid %d (setuidx)\n", (int)uid));
                        return False;
                }
        }
@@ -96,14 +95,14 @@ static BOOL become_uid(int uid)
 #endif
       {
        DEBUG(0,("Couldn't set uid %d currently set to (%d,%d)\n",
-                uid,(int)getuid(), (int)geteuid()));
-       if (uid > 32000) {
+                (int)uid,(int)getuid(), (int)geteuid()));
+       if (uid > (uid_t)32000) {
                DEBUG(0,("Looks like your OS doesn't like high uid values - try using a different account\n"));
        }
        return(False);
       }
 
-    if (((uid == -1) || (uid == 65535)) && geteuid() != uid) {
+    if (((uid == (uid_t)-1) || ((sizeof(uid_t) == 2) && (uid == 65535))) && (geteuid() != uid)) {
            DEBUG(0,("Invalid uid -1. perhaps you have a account with uid 65535?\n"));
            return(False);
     }
@@ -117,13 +116,13 @@ static BOOL become_uid(int uid)
 /****************************************************************************
   become the specified gid
 ****************************************************************************/
-static BOOL become_gid(int gid)
+static BOOL become_gid(gid_t gid)
 {
   if (initial_uid != 0)
     return(True);
 
-  if (gid == -1 || gid == 65535) {
-    DEBUG(1,("WARNING: using gid %d is a security risk\n",gid));    
+  if (gid == (gid_t)-1 || ((sizeof(gid_t) == 2) && (gid == (gid_t)65535))) {
+    DEBUG(1,("WARNING: using gid %d is a security risk\n",(int)gid));    
   }
   
 #ifdef HAVE_SETRESUID
@@ -133,7 +132,7 @@ static BOOL become_gid(int gid)
 #endif
       {
        DEBUG(0,("Couldn't set gid %d currently set to (%d,%d)\n",
-                gid,(int)getgid(),(int)getegid()));
+                (int)gid,(int)getgid(),(int)getegid()));
        if (gid > 32000) {
                DEBUG(0,("Looks like your OS doesn't like high gid values - try using a different account\n"));
        }
@@ -149,7 +148,7 @@ static BOOL become_gid(int gid)
 /****************************************************************************
   become the specified uid and gid
 ****************************************************************************/
-static BOOL become_id(int uid,int gid)
+static BOOL become_id(uid_t uid,gid_t gid)
 {
        return(become_gid(gid) && become_uid(uid));
 }
@@ -213,8 +212,9 @@ static BOOL check_user_ok(connection_struct *conn, user_struct *vuser,int snum)
 BOOL become_user(connection_struct *conn, uint16 vuid)
 {
        user_struct *vuser = get_valid_user_struct(vuid);
-       int snum,gid;
-       int uid;
+       int snum;
+    gid_t gid;
+       uid_t uid;
 
        /*
         * We need a separate check in security=share mode due to vuid