diff options
author | Andrew Tridgell <tridge@samba.org> | 2001-07-04 07:36:09 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2001-07-04 07:36:09 +0000 |
commit | 527e824293ee934ca5da0ef5424efe5ab7757248 (patch) | |
tree | dd86fab3b0ba9cdbd86661dfae562fa123a8f53c | |
parent | 87fbb7092b8f8b2f0db0f361c3d625e19de57cd9 (diff) | |
download | samba-527e824293ee934ca5da0ef5424efe5ab7757248.tar.gz samba-527e824293ee934ca5da0ef5424efe5ab7757248.tar.bz2 samba-527e824293ee934ca5da0ef5424efe5ab7757248.zip |
strchr and strrchr are macros when compiling with optimisation in gcc, so we can't redefine them. damn.
(This used to be commit c41fc06376d1a2b83690612304e85010b5e5f3cf)
78 files changed, 276 insertions, 278 deletions
diff --git a/source3/client/client.c b/source3/client/client.c index ccbeb72e81..479c4f764f 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -479,7 +479,7 @@ static void do_list_helper(file_info *f, const char *mask, void *state) char *p; pstrcpy(mask2, mask); - p = strrchr(mask2,'\\'); + p = strrchr_m(mask2,'\\'); if (!p) return; p[1] = 0; pstrcat(mask2, f->name); @@ -1354,7 +1354,7 @@ static void cmd_print(void) } pstrcpy(rname,lname); - p = strrchr(rname,'/'); + p = strrchr_m(rname,'/'); if (p) { slprintf(rname, sizeof(rname)-1, "%s-%d", p+1, (int)sys_getpid()); } @@ -1813,7 +1813,7 @@ static void process_command_string(char *cmd) fstring tok; int i; - if ((p = strchr(cmd, ';')) == 0) { + if ((p = strchr_m(cmd, ';')) == 0) { strncpy(line, cmd, 999); line[1000] = '\0'; cmd += strlen(cmd); @@ -1971,7 +1971,7 @@ struct cli_state *do_connect(const char *server, const char *share) sharename = servicename; if (*sharename == '\\') { server = sharename+2; - sharename = strchr(server,'\\'); + sharename = strchr_m(server,'\\'); if (!sharename) return NULL; *sharename = 0; sharename++; @@ -2003,7 +2003,7 @@ struct cli_state *do_connect(const char *server, const char *share) called.name, cli_errstr(c))); cli_shutdown(c); free(c); - if ((p=strchr(called.name, '.'))) { + if ((p=strchr_m(called.name, '.'))) { *p = 0; goto again; } @@ -2350,11 +2350,11 @@ static int do_message_op(void) /* modification to support userid%passwd syntax in the USER var 25.Aug.97, jdblair@uab.edu */ - if ((p=strchr(username,'%'))) { + if ((p=strchr_m(username,'%'))) { *p = 0; pstrcpy(password,p+1); got_pass = True; - memset(strchr(getenv("USER"),'%')+1,'X',strlen(password)); + memset(strchr_m(getenv("USER"),'%')+1,'X',strlen(password)); } strupper(username); } @@ -2471,11 +2471,11 @@ static int do_message_op(void) { char *lp; pstrcpy(username,optarg); - if ((lp=strchr(username,'%'))) { + if ((lp=strchr_m(username,'%'))) { *lp = 0; pstrcpy(password,lp+1); got_pass = True; - memset(strchr(optarg,'%')+1,'X',strlen(password)); + memset(strchr_m(optarg,'%')+1,'X',strlen(password)); } } break; @@ -2512,7 +2512,7 @@ static int do_message_op(void) /* break up the line into parameter & value. will need to eat a little whitespace possibly */ param = buf; - if (!(ptr = strchr (buf, '='))) + if (!(ptr = strchr_m (buf, '='))) continue; val = ptr+1; *ptr = '\0'; @@ -2589,7 +2589,7 @@ static int do_message_op(void) return do_tar_op(base_directory); } - if ((p=strchr(query_host,'#'))) { + if ((p=strchr_m(query_host,'#'))) { *p = 0; p++; sscanf(p, "%x", &name_type); diff --git a/source3/client/clitar.c b/source3/client/clitar.c index 8f935da4e0..d28e652b35 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -533,7 +533,7 @@ static BOOL ensurepath(char *fname) safe_strcpy(ffname, fname, strlen(fname)); /* do a `basename' on ffname, so don't try and make file name directory */ - if ((basehack=strrchr(ffname, '\\')) == NULL) + if ((basehack=strrchr_m(ffname, '\\')) == NULL) return True; else *basehack='\0'; @@ -1451,7 +1451,7 @@ int process_tar(void) *(cliplist[i]+strlen(cliplist[i])-1)='\0'; } - if (strrchr(cliplist[i], '\\')) { + if (strrchr_m(cliplist[i], '\\')) { pstring saved_dir; safe_strcpy(saved_dir, cur_dir, sizeof(pstring)); @@ -1463,7 +1463,7 @@ int process_tar(void) safe_strcat(tarmac, cliplist[i], sizeof(pstring)); } safe_strcpy(cur_dir, tarmac, sizeof(pstring)); - *(strrchr(cur_dir, '\\')+1)='\0'; + *(strrchr_m(cur_dir, '\\')+1)='\0'; DEBUG(5, ("process_tar, do_list with tarmac: %s\n", tarmac)); do_list(tarmac,attribute,do_tar, False, True); @@ -1514,13 +1514,13 @@ static int clipfind(char **aret, int ret, char *tok) if (aret==NULL) return 0; /* ignore leading slashes or dots in token */ - while(strchr("/\\.", *tok)) tok++; + while(strchr_m("/\\.", *tok)) tok++; while(ret--) { char *pkey=*aret++; /* ignore leading slashes or dots in list */ - while(strchr("/\\.", *pkey)) pkey++; + while(strchr_m("/\\.", *pkey)) pkey++; if (!strslashcmp(pkey, tok)) return 1; } @@ -1604,7 +1604,7 @@ static int read_inclusion_file(char *filename) } else { unfixtarname(tmpstr, p, strlen(p) + 1, True); cliplist[i] = tmpstr; - if ((p = strchr(p, '\000')) == NULL) { + if ((p = strchr_m(p, '\000')) == NULL) { DEBUG(0,("INTERNAL ERROR: inclusion_buffer is of unexpected contents.\n")); abort(); } diff --git a/source3/client/smbmount.c b/source3/client/smbmount.c index 076be0ccb8..d0c18e6134 100644 --- a/source3/client/smbmount.c +++ b/source3/client/smbmount.c @@ -130,7 +130,7 @@ static struct cli_state *do_connection(char *service) } pstrcpy(server, service+2); - share = strchr(server,'\\'); + share = strchr_m(server,'\\'); if (!share) { usage(); exit(1); @@ -164,7 +164,7 @@ static struct cli_state *do_connection(char *service) getpid(), called.name, cli_errstr(c))); cli_shutdown(c); free(c); - if ((p=strchr(called.name, '.'))) { + if ((p=strchr_m(called.name, '.'))) { *p = 0; goto again; } @@ -715,7 +715,7 @@ static void parse_mount_smb(int argc, char **argv) */ for (opts = strtok(optarg, ","); opts; opts = strtok(NULL, ",")) { DEBUG(3, ("opts: %s\n", opts)); - if ((opteq = strchr(opts, '='))) { + if ((opteq = strchr_m(opts, '='))) { val = atoi(opteq + 1); *opteq = '\0'; @@ -723,13 +723,13 @@ static void parse_mount_smb(int argc, char **argv) !strcmp(opts, "logon")) { char *lp; pstrcpy(username,opteq+1); - if ((lp=strchr(username,'%'))) { + if ((lp=strchr_m(username,'%'))) { *lp = 0; pstrcpy(password,lp+1); got_pass = True; - memset(strchr(opteq+1,'%')+1,'X',strlen(password)); + memset(strchr_m(opteq+1,'%')+1,'X',strlen(password)); } - if ((lp=strchr(username,'/'))) { + if ((lp=strchr_m(username,'/'))) { *lp = 0; pstrcpy(workgroup,lp+1); } @@ -824,11 +824,11 @@ static void parse_mount_smb(int argc, char **argv) if (getenv("USER")) { pstrcpy(username,getenv("USER")); - if ((p=strchr(username,'%'))) { + if ((p=strchr_m(username,'%'))) { *p = 0; pstrcpy(password,p+1); got_pass = True; - memset(strchr(getenv("USER"),'%')+1,'X',strlen(password)); + memset(strchr_m(getenv("USER"),'%')+1,'X',strlen(password)); } strupper(username); } diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c index 1c85de11dd..0c21399e96 100644 --- a/source3/client/smbspool.c +++ b/source3/client/smbspool.c @@ -134,7 +134,7 @@ static int smb_print(struct cli_state *, char *, FILE *); * Extract the destination from the URI... */ - if ((sep = strrchr(uri, '@')) != NULL) + if ((sep = strrchr_m(uri, '@')) != NULL) { username = uri + 6; *sep++ = '\0'; @@ -145,7 +145,7 @@ static int smb_print(struct cli_state *, char *, FILE *); * Extract password as needed... */ - if ((password = strchr(username, ':')) != NULL) + if ((password = strchr_m(username, ':')) != NULL) *password++ = '\0'; else password = ""; @@ -157,7 +157,7 @@ static int smb_print(struct cli_state *, char *, FILE *); server = uri + 6; } - if ((sep = strchr(server, '/')) == NULL) + if ((sep = strchr_m(server, '/')) == NULL) { fputs("ERROR: Bad URI - need printer name!\n", stderr); return (1); @@ -166,7 +166,7 @@ static int smb_print(struct cli_state *, char *, FILE *); *sep++ = '\0'; printer = sep; - if ((sep = strchr(printer, '/')) != NULL) + if ((sep = strchr_m(printer, '/')) != NULL) { /* * Convert to smb://[username:password@]workgroup/server/printer... diff --git a/source3/include/safe_string.h b/source3/include/safe_string.h index 3e379c48df..e609381a89 100644 --- a/source3/include/safe_string.h +++ b/source3/include/safe_string.h @@ -47,10 +47,8 @@ #define wfstrcpy(d,s) safe_strcpy_w((d),(s),sizeof(wfstring)) #define wfstrcat(d,s) safe_strcat_w((d),(s),sizeof(wfstring)) -/* replace some standard C library string functions with multi-byte +/* replace some string functions with multi-byte versions */ -#define strchr(s, c) strchr_m(s, c) -#define strrchr(s, c) strrchr_m(s, c) #define strlower(s) strlower_m(s) #define strupper(s) strupper_m(s) diff --git a/source3/lib/access.c b/source3/lib/access.c index c32b0b7c6c..99f3cc49b5 100644 --- a/source3/lib/access.c +++ b/source3/lib/access.c @@ -97,19 +97,19 @@ static int string_match(char *tok,char *s, char *invalid_char) } else if (strcasecmp(tok, "FAIL") == 0) { /* fail: match any */ return (FAIL); } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no dots */ - if (strchr(s, '.') == 0 && strcasecmp(s, "unknown") != 0) + if (strchr_m(s, '.') == 0 && strcasecmp(s, "unknown") != 0) return (True); } else if (!strcasecmp(tok, s)) { /* match host name or address */ return (True); } else if (tok[(tok_len = strlen(tok)) - 1] == '.') { /* network */ if (strncmp(tok, s, tok_len) == 0) return (True); - } else if ((cut = strchr(tok, '/')) != 0) { /* netnumber/netmask */ + } else if ((cut = strchr_m(tok, '/')) != 0) { /* netnumber/netmask */ if (isdigit((int)s[0]) && masked_match(tok, cut, s)) return (True); - } else if (strchr(tok, '*') != 0) { + } else if (strchr_m(tok, '*') != 0) { *invalid_char = '*'; - } else if (strchr(tok, '?') != 0) { + } else if (strchr_m(tok, '?') != 0) { *invalid_char = '?'; } return (False); @@ -252,7 +252,7 @@ static BOOL only_ipaddrs_in_list(char** list) * was a network/netmask pair. Only network/netmask pairs * have a '/' in them */ - if ((p=strchr(*list, '/')) == NULL) + if ((p=strchr_m(*list, '/')) == NULL) { only_ip = False; DEBUG(3,("only_ipaddrs_in_list: list has non-ip address (%s)\n", *list)); diff --git a/source3/lib/cmd_interp.c b/source3/lib/cmd_interp.c index ef6f94bd49..292f0e9e9e 100644 --- a/source3/lib/cmd_interp.c +++ b/source3/lib/cmd_interp.c @@ -365,7 +365,7 @@ static uint32 process(struct client_info *info, char *cmd_str) { char *p; - if ((p = strchr(cmd, ';')) == 0) + if ((p = strchr_m(cmd, ';')) == 0) { strncpy(line, cmd, 999); line[1000] = '\0'; @@ -702,11 +702,11 @@ static uint32 cmd_use(struct client_info *info, int argc, char *argv[]) { char *lp; pstrcpy(usr.ntc.user_name, optarg); - if ((lp = strchr(usr.ntc.user_name, '%'))) + if ((lp = strchr_m(usr.ntc.user_name, '%'))) { *lp = 0; pstrcpy(password, lp + 1); - memset(strchr(optarg, '%') + 1, 'X', + memset(strchr_m(optarg, '%') + 1, 'X', strlen(password)); got_pwd = True; } @@ -1012,7 +1012,7 @@ static uint32 cmd_set(CLIENT_INFO *info, int argc, char *argv[]) char *lp; cmd_set_options |= CMD_USER; pstrcpy(usr.ntc.user_name, optarg); - if ((lp = strchr(usr.ntc.user_name, '%'))) + if ((lp = strchr_m(usr.ntc.user_name, '%'))) { *lp = 0; pstrcpy(password, lp + 1); @@ -1241,11 +1241,11 @@ static void read_user_env(struct ntuser_creds *u) /* modification to support userid%passwd syntax in the USER var 25.Aug.97, jdblair@uab.edu */ - if ((p = strchr(u->user_name, '%'))) + if ((p = strchr_m(u->user_name, '%'))) { *p = 0; pstrcpy(password, p + 1); - memset(strchr(getenv("USER"), '%') + 1, 'X', + memset(strchr_m(getenv("USER"), '%') + 1, 'X', strlen(password)); } } diff --git a/source3/lib/debug.c b/source3/lib/debug.c index 06092c6a35..27d5e55dc0 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -312,7 +312,7 @@ void setup_logging(char *pname, BOOL interactive) } #ifdef WITH_SYSLOG else { - char *p = strrchr( pname,'/' ); + char *p = strrchr_m( pname,'/' ); if (p) pname = p + 1; #ifdef LOG_DAEMON diff --git a/source3/lib/interface.c b/source3/lib/interface.c index e16afa45af..269e0fa85b 100644 --- a/source3/lib/interface.c +++ b/source3/lib/interface.c @@ -120,7 +120,7 @@ static void interpret_interface(char *token) if (added) return; /* maybe it is a DNS name */ - p = strchr(token,'/'); + p = strchr_m(token,'/'); if (!p) { ip = *interpret_addr2(token); for (i=0;i<total_probed;i++) { diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c index 25be4b030f..7f597d37f2 100644 --- a/source3/lib/substitute.c +++ b/source3/lib/substitute.c @@ -56,7 +56,7 @@ static size_t expand_env_var(char *p, int len) * Look for the terminating ')'. */ - if ((q = strchr(p,')')) == NULL) { + if ((q = strchr_m(p,')')) == NULL) { DEBUG(0,("expand_env_var: Unterminated environment variable [%s]\n", p)); return 2; } @@ -107,7 +107,7 @@ static char *automount_path(char *user_name) char *automount_value = automount_lookup(user_name); if(strlen(automount_value) > 0) { - home_path_start = strchr(automount_value,':'); + home_path_start = strchr_m(automount_value,':'); if (home_path_start != NULL) { DEBUG(5, ("NIS lookup succeeded. Home path is: %s\n", home_path_start?(home_path_start+1):"")); @@ -171,7 +171,7 @@ void standard_sub_basic(char *str) char *p, *s; fstring pidstr; - for (s=str; (p=strchr(s, '%'));s=p) { + for (s=str; (p=strchr_m(s, '%'));s=p) { fstring tmp_str; int l = sizeof(pstring) - (int)(p-str); @@ -220,7 +220,7 @@ void standard_sub_advanced(int snum, char *user, char *connectpath, gid_t gid, c char *p, *s, *home; struct passwd *pass; - for (s=str; (p=strchr(s, '%'));s=p) { + for (s=str; (p=strchr_m(s, '%'));s=p) { int l = sizeof(pstring) - (int)(p-str); switch (*(p+1)) { diff --git a/source3/lib/system.c b/source3/lib/system.c index 8d4a872f14..0799a855e8 100644 --- a/source3/lib/system.c +++ b/source3/lib/system.c @@ -340,7 +340,7 @@ struct hostent *sys_gethostbyname(const char *name) /* Does this name have any dots in it? If so, make no change */ - if (strchr(name, '.')) + if (strchr_m(name, '.')) return(gethostbyname(name)); /* Get my hostname, which should have domain name @@ -350,7 +350,7 @@ struct hostent *sys_gethostbyname(const char *name) gethostname(hostname, sizeof(hostname) - 1); hostname[sizeof(hostname) - 1] = 0; - if ((domain = strchr(hostname, '.')) == NULL) + if ((domain = strchr_m(hostname, '.')) == NULL) return(gethostbyname(name)); /* Attach domain name to query and do modified query. diff --git a/source3/lib/username.c b/source3/lib/username.c index 3c99fc33d5..403a855f1a 100644 --- a/source3/lib/username.c +++ b/source3/lib/username.c @@ -92,7 +92,7 @@ BOOL map_username(char *user) while((s=fgets_slash(buf,sizeof(buf),f))!=NULL) { char *unixname = s; - char *dosname = strchr(unixname,'='); + char *dosname = strchr_m(unixname,'='); BOOL return_if_mapped = False; if (!dosname) @@ -109,7 +109,7 @@ BOOL map_username(char *user) unixname++; } - if (!*unixname || strchr("#;",*unixname)) + if (!*unixname || strchr_m("#;",*unixname)) continue; { @@ -120,7 +120,7 @@ BOOL map_username(char *user) } } - if (strchr(dosname,'*') || user_in_list(user,dosname)) { + if (strchr_m(dosname,'*') || user_in_list(user,dosname)) { DEBUG(3,("Mapped user %s to %s\n",user,unixname)); mapped_user = True; fstrcpy(last_from,user); @@ -529,7 +529,7 @@ struct passwd *smb_getpwnam(char *user, BOOL allow_change) lookup just the username portion locally */ sep = lp_winbind_separator(); if (!sep || !*sep) sep = "\\"; - p = strchr(user,*sep); + p = strchr_m(user,*sep); if (p && strncasecmp(global_myname, user, strlen(global_myname))==0) { return Get_Pwnam(p+1, allow_change); diff --git a/source3/lib/util.c b/source3/lib/util.c index a8ef69e559..d220b2c531 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -140,7 +140,7 @@ char *Atoic(char *p, int *n, char *c) p++; } - if (strchr(c, *p) == NULL) + if (strchr_m(c, *p) == NULL) { DEBUG(5, ("Atoic: no separator characters (%s) not found\n", c)); return NULL; @@ -366,7 +366,7 @@ void dos_clean_name(char *s) *p = 0; pstrcpy(s1,p+3); - if ((p=strrchr(s,'\\')) != NULL) + if ((p=strrchr_m(s,'\\')) != NULL) *p = 0; else *s = 0; @@ -404,7 +404,7 @@ void unix_clean_name(char *s) *p = 0; pstrcpy(s1,p+3); - if ((p=strrchr(s,'/')) != NULL) + if ((p=strrchr_m(s,'/')) != NULL) *p = 0; else *s = 0; @@ -428,7 +428,7 @@ void make_dir_struct(char *buf,char *mask,char *fname,SMB_OFF_T size,int mode,ti size = 0; memset(buf+1,' ',11); - if ((p = strchr(mask2,'.')) != NULL) + if ((p = strchr_m(mask2,'.')) != NULL) { *p = 0; memcpy(buf+1,mask2,MIN(strlen(mask2),8)); @@ -720,7 +720,7 @@ BOOL get_myname(char *my_name) if (my_name) { /* split off any parts after an initial . */ - char *p = strchr(hostname,'.'); + char *p = strchr_m(hostname,'.'); if (p) *p = 0; fstrcpy(my_name,hostname); @@ -766,7 +766,7 @@ BOOL is_ipaddress(const char *str) pure_address = False; /* Check that a pure number is not misinterpreted as an IP */ - pure_address = pure_address && (strchr(str, '.') != NULL); + pure_address = pure_address && (strchr_m(str, '.') != NULL); return pure_address; } @@ -1144,7 +1144,7 @@ BOOL is_in_path(char *name, name_compare_entry *namelist) } /* Get the last component of the unix name. */ - p = strrchr(name, '/'); + p = strrchr_m(name, '/'); strncpy(last_component, p ? ++p : name, sizeof(last_component)-1); last_component[sizeof(last_component)-1] = '\0'; @@ -1211,7 +1211,7 @@ void set_namearray(name_compare_entry **ppname_array, char *namelist) continue; } /* find the next / */ - name_end = strchr(nameptr, '/'); + name_end = strchr_m(nameptr, '/'); /* oops - the last check for a / didn't find one. */ if (name_end == NULL) @@ -1244,7 +1244,7 @@ void set_namearray(name_compare_entry **ppname_array, char *namelist) continue; } /* find the next / */ - if ((name_end = strchr(nameptr, '/')) != NULL) + if ((name_end = strchr_m(nameptr, '/')) != NULL) { *name_end = 0; } @@ -1741,7 +1741,7 @@ char *parent_dirname(const char *path) return(NULL); pstrcpy(dirpath, path); - p = strrchr(dirpath, '/'); /* Find final '/', if any */ + p = strrchr_m(dirpath, '/'); /* Find final '/', if any */ if (!p) { pstrcpy(dirpath, "."); /* No final "/", so dir is "." */ } else { diff --git a/source3/lib/util_file.c b/source3/lib/util_file.c index 7dc25a8dae..01a8b1c333 100644 --- a/source3/lib/util_file.c +++ b/source3/lib/util_file.c @@ -255,7 +255,7 @@ int getfileline(void *vp, char *linebuf, int linebuf_size) continue; } - p = (unsigned char *) strchr(linebuf, ':'); + p = (unsigned char *) strchr_m(linebuf, ':'); if (p == NULL) { DEBUG(0, ("getfileline: malformed line entry (no :)\n")); diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index 70341507cb..c89c7c70d9 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -318,8 +318,8 @@ void split_domain_name(const char *fullname, char *domain, char *name) fullname++; pstrcpy(full_name, fullname); - p = strchr(full_name+1, '\\'); - if (!p) p = strchr(full_name+1, sep[0]); + p = strchr_m(full_name+1, '\\'); + if (!p) p = strchr_m(full_name+1, sep[0]); if (p != NULL) { *p = 0; diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c index 01cff85f65..a55ef1a92e 100644 --- a/source3/lib/util_sock.c +++ b/source3/lib/util_sock.c @@ -127,7 +127,7 @@ void set_socket_options(int fd, char *options) char *p; BOOL got_value = False; - if ((p = strchr(tok,'='))) { + if ((p = strchr_m(tok,'='))) { *p = 0; value = atoi(p+1); got_value = True; diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index 8ff3e23443..736229c75f 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -43,13 +43,13 @@ BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize) if (!sep) sep = " \t\n\r"; /* find the first non sep char */ - while (*s && strchr(sep,*s)) s++; + while (*s && strchr_m(sep,*s)) s++; /* nothing left? */ if (! *s) return(False); /* copy over the token */ - for (quoted = False; len < bufsize && *s && (quoted || !strchr(sep,*s)); s++) { + for (quoted = False; len < bufsize && *s && (quoted || !strchr_m(sep,*s)); s++) { if (*s == '\"') { quoted = !quoted; } else { @@ -103,15 +103,15 @@ char **toktocliplist(int *ctok, char *sep) if (!sep) sep = " \t\n\r"; - while(*s && strchr(sep,*s)) s++; + while(*s && strchr_m(sep,*s)) s++; /* nothing left? */ if (!*s) return(NULL); do { ictok++; - while(*s && (!strchr(sep,*s))) s++; - while(*s && strchr(sep,*s)) *s++=0; + while(*s && (!strchr_m(sep,*s))) s++; + while(*s && strchr_m(sep,*s)) *s++=0; } while(*s); *ctok=ictok; @@ -461,7 +461,7 @@ char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, si for(i = 0; i < len; i++) { int val = (src[i] & 0xff); - if(isupper(val) || islower(val) || isdigit(val) || strchr(other_safe_chars, val)) + if(isupper(val) || islower(val) || isdigit(val) || strchr_m(other_safe_chars, val)) dest[i] = src[i]; else dest[i] = '_'; @@ -499,7 +499,7 @@ char *strncpyn(char *dest, const char *src,size_t n, char c) char *p; size_t str_len; - p = strchr(src, c); + p = strchr_m(src, c); if (p == NULL) { DEBUG(5, ("strncpyn: separator character (%c) not found\n", c)); @@ -539,14 +539,14 @@ size_t strhex_to_str(char *p, size_t len, const char *strhex) continue; } - if (!(p1 = strchr(hexchars, toupper(strhex[i])))) + if (!(p1 = strchr_m(hexchars, toupper(strhex[i])))) { break; } i++; /* next hex digit */ - if (!(p2 = strchr(hexchars, toupper(strhex[i])))) + if (!(p2 = strchr_m(hexchars, toupper(strhex[i])))) { break; } @@ -751,7 +751,7 @@ void all_string_sub(char *s,const char *pattern,const char *insert, size_t len) ****************************************************************************/ void split_at_last_component(char *path, char *front, char sep, char *back) { - char *p = strrchr(path, sep); + char *p = strrchr_m(path, sep); if (p != NULL) { @@ -806,7 +806,7 @@ char *string_truncate(char *s, int length) /**************************************************************************** -strchr and strrchr are very hard to do on general multi-byte strings. +strchr and strrchr_m are very hard to do on general multi-byte strings. we convert via ucs2 for now ****************************************************************************/ char *strchr_m(const char *s, char c) diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 7ec0627682..9511a56e31 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -60,7 +60,7 @@ BOOL cli_session_setup(struct cli_state *cli, /* allow for workgroups as part of the username */ fstrcpy(user2, user); - if ((p=strchr(user2,'\\')) || (p=strchr(user2,'/'))) { + if ((p=strchr_m(user2,'\\')) || (p=strchr_m(user2,'/'))) { *p = 0; user = p+1; workgroup = user2; diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c index 10444a8ab9..b944174665 100644 --- a/source3/libsmb/libsmbclient.c +++ b/source3/libsmb/libsmbclient.c @@ -133,7 +133,7 @@ smbc_parse_path(const char *fname, char *server, char *share, char *path, * exists ... */ - if (strchr(p, '@')) { + if (strchr_m(p, '@')) { pstring username, passwd, domain; char *u = userinfo; @@ -141,13 +141,13 @@ smbc_parse_path(const char *fname, char *server, char *share, char *path, username[0] = passwd[0] = domain[0] = 0; - if (strchr(u, ';')) { + if (strchr_m(u, ';')) { next_token(&u, domain, ";", sizeof(fstring)); } - if (strchr(u, ':')) { + if (strchr_m(u, ':')) { next_token(&u, username, ":", sizeof(fstring)); @@ -276,11 +276,11 @@ struct smbc_server *smbc_server(char *server, char *share, DEBUG(4,("smbc_server: server_n=[%s] server=[%s]\n", server_n, server)); - if ((p=strchr(server_n,'#')) && + if ((p=strchr_m(server_n,'#')) && (strcmp(p+1,"1D")==0 || strcmp(p+1,"01")==0)) { fstrcpy(group, server_n); - p = strchr(group,'#'); + p = strchr_m(group,'#'); *p = 0; } diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 18bf6f4804..c5c4d92c09 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -503,7 +503,7 @@ BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipad DEBUG(4, ("getlmhostsent: lmhost entry: %s %s %s\n", ip, name, flags)); - if (strchr(flags,'G') || strchr(flags,'S')) + if (strchr_m(flags,'G') || strchr_m(flags,'S')) { DEBUG(0,("getlmhostsent: group flag in lmhosts ignored (obsolete)\n")); continue; @@ -513,7 +513,7 @@ BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipad /* Extra feature. If the name ends in '#XX', where XX is a hex number, then only add that name type. */ - if((ptr = strchr(name, '#')) != NULL) + if((ptr = strchr_m(name, '#')) != NULL) { char *endptr; diff --git a/source3/libsmb/nmblib.c b/source3/libsmb/nmblib.c index d3b0e68aef..9d7167f305 100644 --- a/source3/libsmb/nmblib.c +++ b/source3/libsmb/nmblib.c @@ -300,7 +300,7 @@ static int put_nmb_name(char *buf,int offset,struct nmb_name *name) pstrcpy(&buf[offset+1],name->scope); p = &buf[offset+1]; - while ((p = strchr(p,'.'))) { + while ((p = strchr_m(p,'.'))) { buf[offset] = PTR_DIFF(p,&buf[offset+1]); offset += (buf[offset] + 1); p = &buf[offset+1]; diff --git a/source3/msdfs/msdfs.c b/source3/msdfs/msdfs.c index 92f6f1910d..2890b05b52 100644 --- a/source3/msdfs/msdfs.c +++ b/source3/msdfs/msdfs.c @@ -58,7 +58,7 @@ static BOOL parse_dfs_path(char* pathname, struct dfs_path* pdp) /* now tokenize */ /* parse out hostname */ - p = strchr(temp,'\\'); + p = strchr_m(temp,'\\'); if(p == NULL) return False; *p = '\0'; @@ -67,7 +67,7 @@ static BOOL parse_dfs_path(char* pathname, struct dfs_path* pdp) /* parse out servicename */ temp = p+1; - p = strchr(temp,'\\'); + p = strchr_m(temp,'\\'); if(p == NULL) { pstrcpy(pdp->servicename,temp); return True; @@ -78,7 +78,7 @@ static BOOL parse_dfs_path(char* pathname, struct dfs_path* pdp) /* parse out volumename */ temp = p+1; - p = strchr(temp,'\\'); + p = strchr_m(temp,'\\'); if(p == NULL) { pstrcpy(pdp->volumename,temp); return True; @@ -202,7 +202,7 @@ static BOOL parse_symlink(char* buf,struct referral** preflist, int* refcount) for(i=0;i<count;i++) { /* replace / in the alternate path by a \ */ - char* p = strchr(alt_path[i],'/'); + char* p = strchr_m(alt_path[i],'/'); if(p) *p = '\\'; diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c index ca9d04d768..8b771bc452 100644 --- a/source3/nmbd/nmbd.c +++ b/source3/nmbd/nmbd.c @@ -111,7 +111,7 @@ static BOOL dump_core(void) char *p; pstring dname; pstrcpy( dname, debugf ); - if ((p=strrchr(dname,'/'))) + if ((p=strrchr_m(dname,'/'))) *p=0; pstrcat( dname, "/corefiles" ); mkdir( dname, 0700 ); @@ -558,7 +558,7 @@ static BOOL init_structs(void) if (! *global_myname) { fstrcpy( global_myname, myhostname() ); - p = strchr( global_myname, '.' ); + p = strchr_m( global_myname, '.' ); if (p) *p = 0; } @@ -622,7 +622,7 @@ static BOOL init_structs(void) fstrcpy( local_machine, global_myname ); trim_string( local_machine, " ", " " ); - p = strchr( local_machine, ' ' ); + p = strchr_m( local_machine, ' ' ); if (p) *p = 0; strlower( local_machine ); diff --git a/source3/nmbd/nmbd_sendannounce.c b/source3/nmbd/nmbd_sendannounce.c index eb5839253b..32a6d339de 100644 --- a/source3/nmbd/nmbd_sendannounce.c +++ b/source3/nmbd/nmbd_sendannounce.c @@ -510,7 +510,7 @@ void announce_remote(time_t t) char *wgroup; int i; - wgroup = strchr(s2,'/'); + wgroup = strchr_m(s2,'/'); if (wgroup) *wgroup++ = 0; if (!wgroup || !*wgroup) diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c index 296102fd99..0ba1aef057 100644 --- a/source3/nmbd/nmbd_winsserver.c +++ b/source3/nmbd/nmbd_winsserver.c @@ -43,7 +43,7 @@ static void wins_hook(char *operation, struct name_record *namerec, int ttl) if (!cmd || !*cmd) return; for (p=namerec->name.name; *p; p++) { - if (!(isalnum((int)*p) || strchr("._-",*p))) { + if (!(isalnum((int)*p) || strchr_m("._-",*p))) { DEBUG(3,("not calling wins hook for invalid name %s\n", nmb_namestr(&namerec->name))); return; } @@ -255,7 +255,7 @@ BOOL initialise_wins(void) got_token = next_token(&ptr,ip_str,NULL,sizeof(ip_str)); was_ip = False; - if(got_token && strchr(ip_str, '.')) + if(got_token && strchr_m(ip_str, '.')) { num_ips++; was_ip = True; @@ -310,7 +310,7 @@ BOOL initialise_wins(void) /* Netbios name. # divides the name from the type (hex): netbios#xx */ pstrcpy(name,name_str); - if((p = strchr(name,'#')) != NULL) + if((p = strchr_m(name,'#')) != NULL) { *p = 0; sscanf(p+1,"%x",&type); @@ -1630,7 +1630,7 @@ void wins_write_database(BOOL background) tm = LocalTime(&namerec->data.death_time); ts = asctime(tm); - nl = strrchr( ts, '\n' ); + nl = strrchr_m( ts, '\n' ); if( NULL != nl ) *nl = '\0'; DEBUGADD(4,("TTL = %s ", ts )); diff --git a/source3/nsswitch/wb_client.c b/source3/nsswitch/wb_client.c index 2a29773b9e..05c68d240c 100644 --- a/source3/nsswitch/wb_client.c +++ b/source3/nsswitch/wb_client.c @@ -36,8 +36,8 @@ static void parse_domain_user(char *domuser, fstring domain, fstring user) char *p; char *sep = lp_winbind_separator(); if (!sep) sep = "\\"; - p = strchr(domuser,*sep); - if (!p) p = strchr(domuser,'\\'); + p = strchr_m(domuser,*sep); + if (!p) p = strchr_m(domuser,'\\'); if (!p) { fstrcpy(domain,""); fstrcpy(user, domuser); @@ -286,7 +286,7 @@ int winbind_initgroups(char *user, gid_t gid) sep = lp_winbind_separator(); - if (!strchr(user, *sep)) { + if (!strchr_m(user, *sep)) { return initgroups(user, gid); } diff --git a/source3/nsswitch/wbinfo.c b/source3/nsswitch/wbinfo.c index 9d3568417f..5ffd58b183 100644 --- a/source3/nsswitch/wbinfo.c +++ b/source3/nsswitch/wbinfo.c @@ -349,7 +349,7 @@ int main(int argc, char **argv) char *p; fstrcpy(global_myname, myhostname()); - p = strchr(global_myname, '.'); + p = strchr_m(global_myname, '.'); if (p) { *p = 0; } diff --git a/source3/nsswitch/winbind_nss.c b/source3/nsswitch/winbind_nss.c index a2816bfdd3..cbbc30b75c 100644 --- a/source3/nsswitch/winbind_nss.c +++ b/source3/nsswitch/winbind_nss.c @@ -87,13 +87,13 @@ BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize) if (!sep) sep = " \t\n\r"; /* find the first non sep char */ - while (*s && strchr(sep,*s)) s++; + while (*s && strchr_m(sep,*s)) s++; /* nothing left? */ if (! *s) return(False); /* copy over the token */ - for (quoted = False; len < bufsize && *s && (quoted || !strchr(sep,*s)); s++) { + for (quoted = False; len < bufsize && *s && (quoted || !strchr_m(sep,*s)); s++) { if (*s == '\"') { quoted = !quoted; } else { diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index 4177d0219a..9371078a79 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -693,7 +693,7 @@ int main(int argc, char **argv) char *p; fstrcpy(global_myname, myhostname()); - p = strchr(global_myname, '.'); + p = strchr_m(global_myname, '.'); if (p) { *p = 0; } diff --git a/source3/nsswitch/winbindd_pam.c b/source3/nsswitch/winbindd_pam.c index 0cbc3166c8..e69268fe2a 100644 --- a/source3/nsswitch/winbindd_pam.c +++ b/source3/nsswitch/winbindd_pam.c @@ -31,8 +31,8 @@ static void parse_domain_user(char *domuser, fstring domain, fstring user) char *p; char *sep = lp_winbind_separator(); if (!sep) sep = "\\"; - p = strchr(domuser,*sep); - if (!p) p = strchr(domuser,'\\'); + p = strchr_m(domuser,*sep); + if (!p) p = strchr_m(domuser,'\\'); if (!p) { fstrcpy(domain,""); fstrcpy(user, domuser); diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index 4c7071d063..39a2f78d5c 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -909,8 +909,8 @@ void parse_domain_user(char *domuser, fstring domain, fstring user) char *p; char *sep = lp_winbind_separator(); if (!sep) sep = "\\"; - p = strchr(domuser,*sep); - if (!p) p = strchr(domuser,'\\'); + p = strchr_m(domuser,*sep); + if (!p) p = strchr_m(domuser,'\\'); if (!p) { fstrcpy(domain,""); fstrcpy(user, domuser); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 4b89387abf..da25d526a1 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -2211,7 +2211,7 @@ static BOOL source_env(char **lines) strncpy(varval, line, len); varval[len] = '\0'; - p = strchr(line, (int)'='); + p = strchr_m(line, (int)'='); if (p == NULL) { DEBUG(4, ("source_env: missing '=': %s\n", line)); @@ -3486,7 +3486,7 @@ int lp_major_announce_version(void) if ((vers = lp_announce_version()) == NULL) return major_version; - if ((p = strchr(vers, '.')) == 0) + if ((p = strchr_m(vers, '.')) == 0) return major_version; *p = '\0'; @@ -3508,7 +3508,7 @@ int lp_minor_announce_version(void) if ((vers = lp_announce_version()) == NULL) return minor_version; - if ((p = strchr(vers, '.')) == 0) + if ((p = strchr_m(vers, '.')) == 0) return minor_version; p++; diff --git a/source3/passdb/machine_sid.c b/source3/passdb/machine_sid.c index f714106b43..34b0c74208 100644 --- a/source3/passdb/machine_sid.c +++ b/source3/passdb/machine_sid.c @@ -70,7 +70,7 @@ BOOL pdb_generate_sam_sid(void) generate_wellknown_sids(); pstrcpy(sid_file, lp_smb_passwd_file()); - p = strrchr(sid_file, '/'); + p = strrchr_m(sid_file, '/'); if(p != NULL) { *++p = '\0'; } diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index 580cae0240..3bb49091e6 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -318,8 +318,8 @@ BOOL pdb_gethexpwd(char *p, unsigned char *pwd) hinybble = toupper(p[i]); lonybble = toupper(p[i + 1]); - p1 = strchr(hexchars, hinybble); - p2 = strchr(hexchars, lonybble); + p1 = strchr_m(hexchars, hinybble); + p2 = strchr_m(hexchars, lonybble); if (!p1 || !p2) { diff --git a/source3/passdb/pdb_smbpasswd.c b/source3/passdb/pdb_smbpasswd.c index 3679bd1319..dbb0d050c9 100644 --- a/source3/passdb/pdb_smbpasswd.c +++ b/source3/passdb/pdb_smbpasswd.c @@ -343,7 +343,7 @@ static struct smb_passwd *getsmbfilepwent(void *vp) DEBUG(6, ("getsmbfilepwent: skipping comment or blank line\n")); continue; } - p = (unsigned char *) strchr(linebuf, ':'); + p = (unsigned char *) strchr_m(linebuf, ':'); if (p == NULL) { DEBUG(0, ("getsmbfilepwent: malformed password entry (no :)\n")); continue; @@ -443,7 +443,7 @@ static struct smb_passwd *getsmbfilepwent(void *vp) if (*p == '[') { - unsigned char *end_p = (unsigned char *)strchr((char *)p, ']'); + unsigned char *end_p = (unsigned char *)strchr_m((char *)p, ']'); pw_buf.acct_ctrl = pdb_decode_acct_ctrl((char*)p); /* Must have some account type set. */ @@ -768,7 +768,7 @@ static BOOL mod_smbfilepwd_entry(struct smb_passwd* pwd, BOOL override) continue; } - p = (unsigned char *) strchr(linebuf, ':'); + p = (unsigned char *) strchr_m(linebuf, ':'); if (p == NULL) { DEBUG(0, ("mod_smbfilepwd_entry: malformed password entry (no :)\n")); @@ -1346,7 +1346,7 @@ BOOL pdb_getsampwnam(SAM_ACCOUNT *sam_acct, char *username) /* break the username from the domain if we have been given a string in the form 'DOMAIN\user' */ fstrcpy (name, username); - if ((user=strchr(name, '\\')) != NULL) { + if ((user=strchr_m(name, '\\')) != NULL) { domain = name; *user = '\0'; user++; diff --git a/source3/printing/lpq_parse.c b/source3/printing/lpq_parse.c index a143709570..90d8499595 100644 --- a/source3/printing/lpq_parse.c +++ b/source3/printing/lpq_parse.c @@ -277,7 +277,7 @@ static BOOL parse_lpq_lprng(char *line,print_queue_struct *buf,BOOL first) * for the current user on the taskbar. Plop in a null. */ - if ((cptr = strchr(buf->user,'@')) != NULL) { + if ((cptr = strchr_m(buf->user,'@')) != NULL) { *cptr = '\0'; } @@ -342,13 +342,13 @@ static BOOL parse_lpq_aix(char *line,print_queue_struct *buf,BOOL first) if (!isdigit((int)*tok[1]) || !isdigit((int)*tok[4])) return(False); buf->size = atoi(tok[4]) * 1024; /* if the fname contains a space then use STDIN */ - if (strchr(tok[2],' ')) + if (strchr_m(tok[2],' ')) fstrcpy(tok[2],"STDIN"); /* only take the last part of the filename */ { fstring tmp; - char *p = strrchr(tok[2],'/'); + char *p = strrchr_m(tok[2],'/'); if (p) { fstrcpy(tmp,p+1); @@ -376,13 +376,13 @@ static BOOL parse_lpq_aix(char *line,print_queue_struct *buf,BOOL first) if (!isdigit((int)*tok[3]) || !isdigit((int)*tok[8])) return(False); buf->size = atoi(tok[8]) * 1024; /* if the fname contains a space then use STDIN */ - if (strchr(tok[4],' ')) + if (strchr_m(tok[4],' ')) fstrcpy(tok[4],"STDIN"); /* only take the last part of the filename */ { fstring tmp; - char *p = strrchr(tok[4],'/'); + char *p = strrchr_m(tok[4],'/'); if (p) { fstrcpy(tmp,p+1); @@ -453,7 +453,7 @@ static BOOL parse_lpq_hpux(char * line, print_queue_struct *buf, BOOL first) if (!isdigit((int)*tok[1])) return(False); /* if the fname contains a space then use STDIN */ - if (strchr(tok[0],' ')) + if (strchr_m(tok[0],' ')) fstrcpy(tok[0],"STDIN"); buf->size = atoi(tok[1]); @@ -564,7 +564,7 @@ static BOOL parse_lpq_sysv(char *line,print_queue_struct *buf,BOOL first) return(False); /* if the user contains a ! then trim the first part of it */ - if ((p=strchr(tok[2],'!'))) { + if ((p=strchr_m(tok[2],'!'))) { fstring tmp; fstrcpy(tmp,p+1); fstrcpy(tok[2],tmp); @@ -627,7 +627,7 @@ static BOOL parse_lpq_qnx(char *line,print_queue_struct *buf,BOOL first) /* only take the last part of the filename */ { fstring tmp; - char *p = strrchr(tok[6],'/'); + char *p = strrchr_m(tok[6],'/'); if (p) { fstrcpy(tmp,p+1); @@ -685,13 +685,13 @@ static BOOL parse_lpq_plp(char *line,print_queue_struct *buf,BOOL first) return(False); /* if the fname contains a space then use STDIN */ - if (strchr(tok[6],' ')) + if (strchr_m(tok[6],' ')) fstrcpy(tok[6],"STDIN"); /* only take the last part of the filename */ { fstring tmp; - char *p = strrchr(tok[6],'/'); + char *p = strrchr_m(tok[6],'/'); if (p) { fstrcpy(tmp,p+1); @@ -703,9 +703,9 @@ static BOOL parse_lpq_plp(char *line,print_queue_struct *buf,BOOL first) buf->job = atoi(tok[4]); buf->size = atoi(tok[7]); - if (strchr(tok[7],'K')) + if (strchr_m(tok[7],'K')) buf->size *= 1024; - if (strchr(tok[7],'M')) + if (strchr_m(tok[7],'M')) buf->size *= 1024*1024; buf->status = strequal(tok[0],"active")?LPQ_PRINTING:LPQ_QUEUED; @@ -841,8 +841,8 @@ static BOOL parse_lpq_nt(char *line,print_queue_struct *buf,BOOL first) return(False); /* Just want the first word in the owner field - the username */ - if (strchr(parse_line.owner, ' ')) - *(strchr(parse_line.owner, ' ')) = '\0'; + if (strchr_m(parse_line.owner, ' ')) + *(strchr_m(parse_line.owner, ' ')) = '\0'; else parse_line.space1 = '\0'; @@ -1053,7 +1053,7 @@ BOOL parse_lpq_entry(int snum,char *line, /* We don't want the newline in the status message. */ { - char *p = strchr(line,'\n'); + char *p = strchr_m(line,'\n'); if (p) *p = 0; } diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index d099c29cc1..d742773d27 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -673,29 +673,29 @@ static uint32 clean_up_driver_struct_level_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 *dri * or worse c:\windows\system\driver.dll ! */ /* using an intermediate string to not have overlaping memcpy()'s */ - if ((p = strrchr(driver->driverpath,'\\')) != NULL) { + if ((p = strrchr_m(driver->driverpath,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->driverpath, new_name); } - if ((p = strrchr(driver->datafile,'\\')) != NULL) { + if ((p = strrchr_m(driver->datafile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->datafile, new_name); } - if ((p = strrchr(driver->configfile,'\\')) != NULL) { + if ((p = strrchr_m(driver->configfile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->configfile, new_name); } - if ((p = strrchr(driver->helpfile,'\\')) != NULL) { + if ((p = strrchr_m(driver->helpfile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->helpfile, new_name); } if (driver->dependentfiles) { for (i=0; *driver->dependentfiles[i]; i++) { - if ((p = strrchr(driver->dependentfiles[i],'\\')) != NULL) { + if ((p = strrchr_m(driver->dependentfiles[i],'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->dependentfiles[i], new_name); } @@ -738,29 +738,29 @@ static uint32 clean_up_driver_struct_level_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *dri * or worse c:\windows\system\driver.dll ! */ /* using an intermediate string to not have overlaping memcpy()'s */ - if ((p = strrchr(driver->driverpath,'\\')) != NULL) { + if ((p = strrchr_m(driver->driverpath,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->driverpath, new_name); } - if ((p = strrchr(driver->datafile,'\\')) != NULL) { + if ((p = strrchr_m(driver->datafile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->datafile, new_name); } - if ((p = strrchr(driver->configfile,'\\')) != NULL) { + if ((p = strrchr_m(driver->configfile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->configfile, new_name); } - if ((p = strrchr(driver->helpfile,'\\')) != NULL) { + if ((p = strrchr_m(driver->helpfile,'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->helpfile, new_name); } if (driver->dependentfiles) { for (i=0; *driver->dependentfiles[i]; i++) { - if ((p = strrchr(driver->dependentfiles[i],'\\')) != NULL) { + if ((p = strrchr_m(driver->dependentfiles[i],'\\')) != NULL) { fstrcpy(new_name, p+1); fstrcpy(driver->dependentfiles[i], new_name); } @@ -2292,7 +2292,7 @@ static void map_to_os2_driver(fstring drivername) for( i = 0; i < numlines; i++) { char *nt_name = lines[i]; - char *os2_name = strchr(nt_name,'='); + char *os2_name = strchr_m(nt_name,'='); if (!os2_name) continue; @@ -2302,7 +2302,7 @@ static void map_to_os2_driver(fstring drivername) while (isspace(*nt_name)) nt_name++; - if (!*nt_name || strchr("#;",*nt_name)) + if (!*nt_name || strchr_m("#;",*nt_name)) continue; { @@ -3189,7 +3189,7 @@ BOOL nt_printing_getsec(TALLOC_CTX *ctx, char *printername, SEC_DESC_BUF **secde fstring key; char *temp; - if ((temp = strchr(printername + 2, '\\'))) { + if ((temp = strchr_m(printername + 2, '\\'))) { printername = temp + 1; } diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c index 1f909d3533..313e17fb1c 100644 --- a/source3/printing/pcap.c +++ b/source3/printing/pcap.c @@ -122,7 +122,7 @@ static void ScanQconfig_fn(char *psz,void (*fn)(char *, char *)) { case 0: /* locate an entry */ if (*line == '\t' || *line == ' ') continue; - if ((p=strchr(line,':'))) + if ((p=strchr_m(line,':'))) { *p = '\0'; p = strtok(line,":"); @@ -297,14 +297,14 @@ BOOL pcap_printername_ok(char *pszPrintername, char *pszPrintcapname) continue; /* now we have a real printer line - cut it off at the first : */ - p = strchr(line,':'); + p = strchr_m(line,':'); if (p) *p = 0; /* now just check if the name is in the list */ /* NOTE: I avoid strtok as the fn calling this one may be using it */ for (p=line; p; p=q) { - if ((q = strchr(p,'|'))) *q++ = 0; + if ((q = strchr_m(p,'|'))) *q++ = 0; if (strequal(p,pszPrintername)) { @@ -378,7 +378,7 @@ void pcap_printer_fn(void (*fn)(char *, char *)) continue; /* now we have a real printer line - cut it off at the first : */ - p = strchr(line,':'); + p = strchr_m(line,':'); if (p) *p = 0; /* now find the most likely printer name and comment @@ -388,9 +388,9 @@ void pcap_printer_fn(void (*fn)(char *, char *)) for (p=line; p; p=q) { BOOL has_punctuation; - if ((q = strchr(p,'|'))) *q++ = 0; + if ((q = strchr_m(p,'|'))) *q++ = 0; - has_punctuation = (strchr(p,' ') || strchr(p,'\t') || strchr(p,'(') || strchr(p,')')); + has_punctuation = (strchr_m(p,' ') || strchr_m(p,'\t') || strchr_m(p,'(') || strchr_m(p,')')); if (strlen(p)>strlen(comment) && has_punctuation) { @@ -405,7 +405,7 @@ void pcap_printer_fn(void (*fn)(char *, char *)) continue; } - if (!strchr(comment,' ') && + if (!strchr_m(comment,' ') && strlen(p) > strlen(comment)) { StrnCpy(comment,p,sizeof(comment)-1); diff --git a/source3/printing/print_generic.c b/source3/printing/print_generic.c index 3e5753583e..bc9751a653 100644 --- a/source3/printing/print_generic.c +++ b/source3/printing/print_generic.c @@ -157,7 +157,7 @@ static int generic_job_submit(int snum, struct printjob *pjob) return 0; pstrcpy(print_directory, pjob->filename); - p = strrchr(print_directory,'/'); + p = strrchr_m(print_directory,'/'); if (!p) return 0; *p++ = 0; diff --git a/source3/printing/print_svid.c b/source3/printing/print_svid.c index 301f388671..22ddbe70b9 100644 --- a/source3/printing/print_svid.c +++ b/source3/printing/print_svid.c @@ -59,8 +59,8 @@ static void populate_printers(void) char *buf = lines[i]; /* eat "system/device for " */ - if (((tmp = strchr(buf, ' ')) == NULL) || - ((tmp = strchr(++tmp, ' ')) == NULL)) + if (((tmp = strchr_m(buf, ' ')) == NULL) || + ((tmp = strchr_m(++tmp, ' ')) == NULL)) continue; /* @@ -68,13 +68,13 @@ static void populate_printers(void) */ if(!strncmp("for ",++tmp,4)) { - tmp=strchr(tmp, ' '); + tmp=strchr_m(tmp, ' '); tmp++; } name = tmp; /* truncate the ": ..." */ - if ((tmp = strchr(name, ':')) != NULL) + if ((tmp = strchr_m(name, ':')) != NULL) *tmp = '\0'; /* add it to the cache */ diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c index 2dd492364b..c5b36fe2a5 100644 --- a/source3/rpc_client/cli_spoolss.c +++ b/source3/rpc_client/cli_spoolss.c @@ -448,7 +448,7 @@ BOOL spoolss_open_printer_ex( const char *printername, memset(srv_name, 0, sizeof(srv_name)); fstrcpy(srv_name, printername); - s = strchr(&srv_name[2], '\\'); + s = strchr_m(&srv_name[2], '\\'); if (s != NULL) *s = '\0'; diff --git a/source3/rpc_server/srv_dfs_nt.c b/source3/rpc_server/srv_dfs_nt.c index 54c3fbf324..a84f2ceb48 100644 --- a/source3/rpc_server/srv_dfs_nt.c +++ b/source3/rpc_server/srv_dfs_nt.c @@ -253,7 +253,7 @@ static BOOL init_reply_dfs_info_3(TALLOC_CTX *ctx, struct junction_map* j, DFS_I pstrcpy(path, ref->alternate_path); trim_string(path,"\\",""); - p = strrchr(path,'\\'); + p = strrchr_m(path,'\\'); if(p==NULL) { DEBUG(4,("init_reply_dfs_info_3: invalid path: no \\ found in %s\n",path)); diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index d783de3b4b..a73dcb30d2 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -256,7 +256,7 @@ static char *unmap_unixname(char *unix_user_name, int name_idx) for (i=0; lines[i]; i++) { char *unixname = lines[i]; - char *dosname = strchr(unixname,'='); + char *dosname = strchr_m(unixname,'='); if (!dosname) continue; @@ -271,7 +271,7 @@ static char *unmap_unixname(char *unix_user_name, int name_idx) unixname++; } - if (!*unixname || strchr("#;",*unixname)) + if (!*unixname || strchr_m("#;",*unixname)) continue; if (strncmp(unixname, unix_user_name, strlen(unix_user_name))) @@ -280,7 +280,7 @@ static char *unmap_unixname(char *unix_user_name, int name_idx) /* We have matched the UNIX user name */ while(next_token(&dosname, tok, LIST_SEP, sizeof(tok))) { - if (!strchr("@&+", *tok)) { + if (!strchr_m("@&+", *tok)) { name_idx--; if (name_idx < 0 ) { break; @@ -406,7 +406,7 @@ static BOOL get_passwd_entries(SAM_USER_INFO_21 *pw_buf, /* Don't enumerate winbind users as they are not local */ - if (strchr(pwd->pw_name, *sep) != NULL) { + if (strchr_m(pwd->pw_name, *sep) != NULL) { continue; } @@ -834,7 +834,7 @@ static BOOL get_group_alias_entries(TALLOC_CTX *ctx, DOMAIN_GRP **d_grp, DOM_SID sid_split_rid(&smap.sid, &trid); /* Don't return winbind groups as they are not local! */ - if (strchr(smap.nt_name, *sep) != NULL) { + if (strchr_m(smap.nt_name, *sep) != NULL) { DEBUG(10,("get_group_alias_entries: not returing %s, not local.\n", smap.nt_name )); continue; } diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 7002241a00..79c788e67b 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -377,7 +377,7 @@ static BOOL set_printer_hnd_printertype(Printer_entry *Printer, char *handlename } /* it's a print server */ - if (*handlename=='\\' && *(handlename+1)=='\\' && !strchr(handlename+2, '\\')) { + if (*handlename=='\\' && *(handlename+1)=='\\' && !strchr_m(handlename+2, '\\')) { DEBUGADD(4,("Printer is a print server\n")); Printer->printer_type = PRINTER_HANDLE_IS_PRINTSERVER; } @@ -414,7 +414,7 @@ static BOOL set_printer_hnd_name(Printer_entry *Printer, char *handlename) return False; if (*handlename=='\\') { - aprinter=strchr(handlename+2, '\\'); + aprinter=strchr_m(handlename+2, '\\'); aprinter++; } else { @@ -442,7 +442,7 @@ static BOOL set_printer_hnd_name(Printer_entry *Printer, char *handlename) if (get_a_printer(&printer, 2, lp_servicename(snum))!=0) continue; - printername=strchr(printer->info_2->printername+2, '\\'); + printername=strchr_m(printer->info_2->printername+2, '\\'); printername++; DEBUG(10,("set_printer_hnd_name: name [%s], aprinter [%s]\n", @@ -1461,7 +1461,7 @@ static void spoolss_notify_printer_name(int snum, uint32 len; /* the notify name should not contain the \\server\ part */ - char *p = strrchr(printer->info_2->printername, '\\'); + char *p = strrchr_m(printer->info_2->printername, '\\'); if (!p) { p = printer->info_2->printername; diff --git a/source3/rpc_server/srv_util.c b/source3/rpc_server/srv_util.c index deaa6008b9..f9e02b9bca 100644 --- a/source3/rpc_server/srv_util.c +++ b/source3/rpc_server/srv_util.c @@ -114,7 +114,7 @@ int make_dom_gids(TALLOC_CTX *ctx, char *gids_str, DOM_GID **ppgids) uint32 rid = 0; int i; - attr = strchr(s2,'/'); + attr = strchr_m(s2,'/'); if (attr) *attr++ = 0; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 0d1b84f849..6e4d60d208 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -163,7 +163,7 @@ static char* next_command (char** cmdstr) if (!cmdstr || !(*cmdstr)) return NULL; - p = strchr(*cmdstr, ';'); + p = strchr_m(*cmdstr, ';'); if (p) *p = '\0'; pstrcpy(command, *cmdstr); @@ -588,11 +588,11 @@ static void usage(char *pname) case 'U': { char *lp; pstrcpy(username,optarg); - if ((lp=strchr(username,'%'))) { + if ((lp=strchr_m(username,'%'))) { *lp = 0; pstrcpy(password,lp+1); got_pass = True; - memset(strchr(optarg,'%')+1,'X',strlen(password)); + memset(strchr_m(optarg,'%')+1,'X',strlen(password)); } break; } diff --git a/source3/smbd/close.c b/source3/smbd/close.c index dfbc2272e6..6b72a8563a 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -35,7 +35,7 @@ static void check_magic(files_struct *fsp,connection_struct *conn) { char *p; - if (!(p = strrchr(fsp->fsp_name,'/'))) + if (!(p = strrchr_m(fsp->fsp_name,'/'))) p = fsp->fsp_name; else p++; diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index 89e5b1586c..639e365d1b 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -149,7 +149,7 @@ int dos_mode(connection_struct *conn,char *path,SMB_STRUCT_STAT *sbuf) /* hide files with a name starting with a . */ if (lp_hide_dot_files(SNUM(conn))) { - char *p = strrchr(path,'/'); + char *p = strrchr_m(path,'/'); if (p) p++; else diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index 9b76d63dc6..70f34c52ad 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -176,7 +176,7 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component, */ if(saved_last_component) { - end = strrchr(name, '/'); + end = strrchr_m(name, '/'); if(end) pstrcpy(saved_last_component, end + 1); else @@ -243,7 +243,7 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component, #if 0 /* Keep Andrew's conservative code around, just in case. JRA. */ /* this is an extremely conservative test for mangled names. */ - if (strchr(start,magic_char)) + if (strchr_m(start,magic_char)) component_was_mangled = True; #endif @@ -261,7 +261,7 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component, /* * Pinpoint the end of this section of the filename. */ - end = strchr(start, '/'); + end = strchr_m(start, '/'); /* * Chop the name at this point. diff --git a/source3/smbd/groupname.c b/source3/smbd/groupname.c index d44e9a7a39..0640d4d7b2 100644 --- a/source3/smbd/groupname.c +++ b/source3/smbd/groupname.c @@ -125,7 +125,7 @@ void load_groupname_map(void) DEBUG(10,("load_groupname_map: Read line |%s|\n", s)); - if (!*s || strchr("#;",*s)) + if (!*s || strchr_m("#;",*s)) continue; if(!next_token(&s,unixname, "\t\n\r=", sizeof(unixname))) diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c index 2b71770b2e..6e3145aa7d 100644 --- a/source3/smbd/lanman.c +++ b/source3/smbd/lanman.c @@ -866,7 +866,7 @@ static BOOL api_DosPrintQGetInfo(connection_struct *conn, str3 = p + 4; /* remove any trailing username */ - if ((p = strchr(QueueName,'%'))) *p = 0; + if ((p = strchr_m(QueueName,'%'))) *p = 0; DEBUG(3,("PrintQueue uLevel=%d name=%s\n",uLevel,QueueName)); diff --git a/source3/smbd/mangle.c b/source3/smbd/mangle.c index 8df71d4557..16286a8bb1 100644 --- a/source3/smbd/mangle.c +++ b/source3/smbd/mangle.c @@ -85,11 +85,11 @@ extern BOOL case_mangle; /* If true, all chars in 8.3 should be same case. */ * * isbasecahr() - Given a character, check the chartest array to see * if that character is in the basechars set. This is - * faster than using strchr(). + * faster than using strchr_m(). * * isillegal() - Given a character, check the chartest array to see * if that character is in the illegal characters set. - * This is faster than using strchr(). + * This is faster than using strchr_m(). * * mangled_cache - Cache header used for storing mangled -> original * reverse maps. @@ -181,7 +181,7 @@ static BOOL is_reserved_msdos( char *fname ) StrnCpy (upperFname, fname, 12); /* lpt1.txt and con.txt etc are also illegal */ - p = strchr(upperFname,'.'); + p = strchr_m(upperFname,'.'); if( p ) *p = '\0'; @@ -287,14 +287,14 @@ BOOL is_mangled( char *s ) if( !ct_initialized ) init_chartest(); - magic = strchr( s, magic_char ); + magic = strchr_m( s, magic_char ); while( magic && magic[1] && magic[2] ) /* 3 chars, 1st is magic. */ { if( ('.' == magic[3] || '/' == magic[3] || !(magic[3])) /* Ends with '.' or nul or '/' ? */ && isbasechar( toupper(magic[1]) ) /* is 2nd char basechar? */ && isbasechar( toupper(magic[2]) ) ) /* is 3rd char basechar? */ return( True ); /* If all above, then true, */ - magic = strchr( magic+1, magic_char ); /* else seek next magic. */ + magic = strchr_m( magic+1, magic_char ); /* else seek next magic. */ } return( False ); } /* is_mangled */ @@ -318,7 +318,7 @@ BOOL is_8_3( char *fname, BOOL check_case ) int l; char *p; char *dot_pos; - char *slash_pos = strrchr( fname, '/' ); + char *slash_pos = strrchr_m( fname, '/' ); /* If there is a directory path, skip it. */ if( slash_pos ) @@ -389,7 +389,7 @@ BOOL is_8_3( char *fname, BOOL check_case ) /* see smb.conf(5) for a description of the 'strip dot' parameter. */ if( lp_strip_dot() && len - l == 1 - && !strchr( dot_pos + 1, '.' ) ) + && !strchr_m( dot_pos + 1, '.' ) ) { *dot_pos = 0; return( True ); @@ -400,7 +400,7 @@ BOOL is_8_3( char *fname, BOOL check_case ) return( False ); /* extensions may not have a dot */ - if( strchr( dot_pos+1, '.' ) ) + if( strchr_m( dot_pos+1, '.' ) ) return( False ); /* must be in 8.3 format */ @@ -537,8 +537,8 @@ static void cache_mangled_name( char *mangled_name, char *raw_name ) /* See if the extensions are unmangled. If so, store the entry * without the extension, thus creating a "group" reverse map. */ - s1 = strrchr( mangled_name, '.' ); - if( s1 && (s2 = strrchr( raw_name, '.' )) ) + s1 = strrchr_m( mangled_name, '.' ); + if( s1 && (s2 = strrchr_m( raw_name, '.' )) ) { i = 1; while( s1[i] && (tolower( s1[1] ) == s2[i]) ) @@ -595,7 +595,7 @@ BOOL check_mangled_cache( char *s ) /* If we didn't find the name *with* the extension, try without. */ if( !FoundPtr ) { - ext_start = strrchr( s, '.' ); + ext_start = strrchr_m( s, '.' ); if( ext_start ) { if((saved_ext = strdup(ext_start)) == NULL) @@ -833,7 +833,7 @@ void mangle_name_83( char *s) extension[0] = 0; base[0] = 0; - p = strrchr(s,'.'); + p = strrchr_m(s,'.'); if( p && (strlen(p+1) < (size_t)4) ) { BOOL all_normal = ( strisnormal(p+1) ); /* XXXXXXXXX */ diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index ea37b14e5e..a156748cf8 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -684,7 +684,7 @@ int reply_ntcreate_and_X(connection_struct *conn, srvstr_pull(inbuf, fname, smb_buf(inbuf), sizeof(fname), -1, STR_TERMINATE); - if( strchr(fname, ':')) { + if( strchr_m(fname, ':')) { SSVAL(outbuf, smb_flg2, SVAL(outbuf,smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); END_PROFILE(SMBntcreateX); return(ERROR(0, NT_STATUS_OBJECT_PATH_NOT_FOUND)); @@ -1190,7 +1190,7 @@ static int call_nt_transact_create(connection_struct *conn, srvstr_pull(inbuf, fname, params+53, sizeof(fname), -1, STR_TERMINATE); - if( strchr(fname, ':')) { + if( strchr_m(fname, ':')) { SSVAL(outbuf, smb_flg2, SVAL(outbuf,smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); return(ERROR(0, NT_STATUS_OBJECT_PATH_NOT_FOUND)); } diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 7c48e28138..858a26191f 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -42,7 +42,7 @@ static int fd_open(struct connection_struct *conn, char *fname, /* Fix for files ending in '.' */ if((fd == -1) && (errno == ENOENT) && - (strchr(fname,'.')==NULL)) { + (strchr_m(fname,'.')==NULL)) { pstrcat(fname,"."); fd = conn->vfs_ops.open(conn,fname,flags,mode); } @@ -245,7 +245,7 @@ return True if the filename is one of the special executable types ********************************************************************/ static BOOL is_executable(const char *fname) { - if ((fname = strrchr(fname,'.'))) { + if ((fname = strrchr_m(fname,'.'))) { if (strequal(fname,".com") || strequal(fname,".dll") || strequal(fname,".exe") || diff --git a/source3/smbd/quotas.c b/source3/smbd/quotas.c index caf3997ba8..5d82756f24 100644 --- a/source3/smbd/quotas.c +++ b/source3/smbd/quotas.c @@ -330,7 +330,7 @@ static BOOL nfs_quotas(char *nfspath, uid_t euser_id, SMB_BIG_UINT *bsize, SMB_B host = strncat(cutstr,mnttype, sizeof(char) * len ); DEBUG(5,("nfs_quotas: looking for mount on \"%s\"\n", cutstr)); DEBUG(5,("nfs_quotas: of path \"%s\"\n", mnttype)); - testpath=strchr(mnttype, ':'); + testpath=strchr_m(mnttype, ':'); args.gqa_pathp = testpath+1; args.gqa_uid = uid; diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index fe0f2862c6..a331073093 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -198,13 +198,13 @@ int reply_tcon(connection_struct *conn, p += srvstr_pull(inbuf, dev, p, sizeof(dev), -1, STR_TERMINATE) + 1; *user = 0; - p = strchr(service,'%'); + p = strchr_m(service,'%'); if (p != NULL) { *p = 0; fstrcpy(user,p+1); } - p = strrchr(service,'\\'); + p = strrchr_m(service,'\\'); if (p) { pstrcpy(service, p+1); } @@ -288,13 +288,13 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt passlen = strlen(password); } - q = strchr(path+2,'\\'); + q = strchr_m(path+2,'\\'); if (!q) { END_PROFILE(SMBtconX); return(ERROR(ERRDOS,ERRnosuchshare)); } fstrcpy(service,q+1); - q = strchr(service,'%'); + q = strchr_m(service,'%'); if (q) { *q++ = 0; fstrcpy(user,q); @@ -1362,7 +1362,7 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size if (!check_name(directory,conn)) can_open = False; - p = strrchr(dir2,'/'); + p = strrchr_m(dir2,'/'); if (p == NULL) { pstrcpy(mask,dir2); @@ -1374,7 +1374,7 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size pstrcpy(mask,p+1); } - p = strrchr(directory,'/'); + p = strrchr_m(directory,'/'); if (!p) *directory = 0; else @@ -1976,7 +1976,7 @@ int unlink_internals(connection_struct *conn, char *inbuf,char *outbuf, rc = unix_convert(name,conn,0,&bad_path,&sbuf); - p = strrchr(name,'/'); + p = strrchr_m(name,'/'); if (!p) { pstrcpy(directory,"./"); pstrcpy(mask,name); @@ -3627,21 +3627,21 @@ static BOOL resolve_wildcards(char *name1,char *name2) fstring ext1,ext2; char *p,*p2; - name1 = strrchr(name1,'/'); - name2 = strrchr(name2,'/'); + name1 = strrchr_m(name1,'/'); + name2 = strrchr_m(name2,'/'); if (!name1 || !name2) return(False); fstrcpy(root1,name1); fstrcpy(root2,name2); - p = strrchr(root1,'.'); + p = strrchr_m(root1,'.'); if (p) { *p = 0; fstrcpy(ext1,p+1); } else { fstrcpy(ext1,""); } - p = strrchr(root2,'.'); + p = strrchr_m(root2,'.'); if (p) { *p = 0; fstrcpy(ext2,p+1); @@ -3731,7 +3731,7 @@ int rename_internals(connection_struct *conn, * as this is checked in resolve_wildcards(). */ - p = strrchr(name,'/'); + p = strrchr_m(name,'/'); if (!p) { pstrcpy(directory,"."); pstrcpy(mask,name); @@ -3767,7 +3767,7 @@ int rename_internals(connection_struct *conn, pstrcat(directory,mask); /* Ensure newname contains a '/' also */ - if(strrchr(newname,'/') == 0) { + if(strrchr_m(newname,'/') == 0) { pstring tmpstr; pstrcpy(tmpstr, "./"); @@ -3800,7 +3800,7 @@ int rename_internals(connection_struct *conn, * Note that we guarantee that newname contains a '/' * character above. */ - p = strrchr(newname,'/'); + p = strrchr_m(newname,'/'); pstrcpy(newname_modified_last_component,p+1); if(strcsequal(newname_modified_last_component, @@ -3966,7 +3966,7 @@ static BOOL copy_file(char *src,char *dest1,connection_struct *conn, int ofun, pstrcpy(dest,dest1); if (target_is_directory) { - char *p = strrchr(src,'/'); + char *p = strrchr_m(src,'/'); if (p) p++; else @@ -4091,7 +4091,7 @@ int reply_copy(connection_struct *conn, char *inbuf,char *outbuf, int dum_size, return(ERROR(ERRSRV,ERRerror)); } - p = strrchr(name,'/'); + p = strrchr_m(name,'/'); if (!p) { pstrcpy(directory,"./"); pstrcpy(mask,name); diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 8d115d954c..f753d615ed 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -389,7 +389,7 @@ static BOOL dump_core(void) char *p; pstring dname; pstrcpy(dname,debugf); - if ((p=strrchr(dname,'/'))) *p=0; + if ((p=strrchr_m(dname,'/'))) *p=0; pstrcat(dname,"/corefiles"); mkdir(dname,0700); sys_chown(dname,getuid(),getgid()); @@ -497,7 +497,7 @@ static void init_structs(void ) if (!*global_myname) { char *p; fstrcpy( global_myname, myhostname() ); - p = strchr( global_myname, '.' ); + p = strchr_m( global_myname, '.' ); if (p) *p = 0; } diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 836ef30f80..04139be917 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -102,7 +102,7 @@ int add_home_service(char *service, char *homedir) fstrcpy(new_service, service); - if ((usr_p = strchr(service,*lp_winbind_separator())) != NULL) + if ((usr_p = strchr_m(service,*lp_winbind_separator())) != NULL) fstrcpy(new_service, usr_p+1); lp_add_home(new_service,iHomeService,homedir); diff --git a/source3/smbd/statcache.c b/source3/smbd/statcache.c index 65a4830016..2e31e1252e 100644 --- a/source3/smbd/statcache.c +++ b/source3/smbd/statcache.c @@ -174,7 +174,7 @@ BOOL stat_cache_lookup(connection_struct *conn, char *name, char *dirpath, /* * Didn't find it - remove last component for next try. */ - sp = strrchr(chk_name, '/'); + sp = strrchr_m(chk_name, '/'); if (sp) { *sp = '\0'; } else { diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index f768a72c6d..622b23c0b0 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -339,7 +339,7 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn, if (!conn->dirptr) return(False); - p = strrchr(path_mask,'/'); + p = strrchr_m(path_mask,'/'); if(p != NULL) { if(p[1] == '\0') @@ -732,7 +732,7 @@ static int call_trans2findfirst(connection_struct *conn, return(UNIXERROR(ERRDOS,ERRbadpath)); } - p = strrchr(directory,'/'); + p = strrchr_m(directory,'/'); if(p == NULL) { pstrcpy(mask,directory); pstrcpy(directory,"./"); @@ -1383,7 +1383,7 @@ static int call_trans2qfilepathinfo(connection_struct *conn, DEBUG(3,("call_trans2qfilepathinfo %s level=%d call=%d total_data=%d\n", fname,info_level,tran_call,total_data)); - p = strrchr(fname,'/'); + p = strrchr_m(fname,'/'); if (!p) { base_name = fname; } else { diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index da4c538319..0070781d24 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -288,7 +288,7 @@ BOOL lookup_name(const char *name, DOM_SID *psid, enum SID_NAME_USE *name_type) /* If we are looking up a domain user, make sure it is for the local machine only */ - if (strchr(name, sep[0]) || strchr(name, '\\')) { + if (strchr_m(name, sep[0]) || strchr_m(name, '\\')) { fstring domain, username; split_domain_name(name, domain, username); diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 747d393386..71ebf9b506 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -705,7 +705,7 @@ BOOL reduce_name(connection_struct *conn, char *s,char *dir,BOOL widelinks) all_string_sub(s,"//","/",0); pstrcpy(base_name,s); - p = strrchr(base_name,'/'); + p = strrchr_m(base_name,'/'); if (!p) return(True); diff --git a/source3/smbwrapper/smbsh.c b/source3/smbwrapper/smbsh.c index c5007e187d..37e29a94f9 100644 --- a/source3/smbwrapper/smbsh.c +++ b/source3/smbwrapper/smbsh.c @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) smbw_setshared("DEBUG", optarg); break; case 'U': - p = strchr(optarg,'%'); + p = strchr_m(optarg,'%'); if (p) { *p=0; smbw_setshared("PASSWORD",p+1); diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c index fd7f2a0253..dd78480f17 100644 --- a/source3/smbwrapper/smbw.c +++ b/source3/smbwrapper/smbw.c @@ -481,13 +481,13 @@ struct smbw_server *smbw_server(char *server, char *share) DEBUG(4,("server_n=[%s] server=[%s]\n", server_n, server)); - if ((p=strchr(server_n,'#')) && + if ((p=strchr_m(server_n,'#')) && (strcmp(p+1,"1D")==0 || strcmp(p+1,"01")==0)) { struct in_addr sip; pstring s; fstrcpy(group, server_n); - p = strchr(group,'#'); + p = strchr_m(group,'#'); *p = 0; /* cache the workgroup master lookup */ diff --git a/source3/torture/locktest.c b/source3/torture/locktest.c index 2eaa6057c6..f7f7c580aa 100644 --- a/source3/torture/locktest.c +++ b/source3/torture/locktest.c @@ -120,7 +120,7 @@ struct cli_state *connect_one(char *share) static int count; fstrcpy(server,share+2); - share = strchr(server,'\\'); + share = strchr_m(server,'\\'); if (!share) return NULL; *share = 0; share++; @@ -524,7 +524,7 @@ static void usage(void) switch (opt) { case 'U': pstrcpy(username,optarg); - p = strchr(username,'%'); + p = strchr_m(username,'%'); if (p) { *p = 0; pstrcpy(password, p+1); diff --git a/source3/torture/locktest2.c b/source3/torture/locktest2.c index 171386dec3..37baa62b73 100644 --- a/source3/torture/locktest2.c +++ b/source3/torture/locktest2.c @@ -162,7 +162,7 @@ struct cli_state *connect_one(char *share) static int count; fstrcpy(server,share+2); - share = strchr(server,'\\'); + share = strchr_m(server,'\\'); if (!share) return NULL; *share = 0; share++; @@ -577,7 +577,7 @@ static void usage(void) switch (opt) { case 'U': pstrcpy(username,optarg); - p = strchr(username,'%'); + p = strchr_m(username,'%'); if (p) { *p = 0; pstrcpy(password, p+1); diff --git a/source3/torture/masktest.c b/source3/torture/masktest.c index a10a4e954c..0acdb0d95c 100644 --- a/source3/torture/masktest.c +++ b/source3/torture/masktest.c @@ -76,7 +76,7 @@ int ms_fnmatch_lanman_core(char *pattern, char *string) case '<': for (; *n; n++) { if (ms_fnmatch_lanman_core(p, n) == 0) goto match; - if (*n == '.' && !strchr(n+1,'.')) { + if (*n == '.' && !strchr_m(n+1,'.')) { n++; break; } @@ -146,7 +146,7 @@ static char *reg_test(char *pattern, char *long_name, char *short_name) static fstring ret; fstrcpy(ret, "---"); - pattern = 1+strrchr(pattern,'\\'); + pattern = 1+strrchr_m(pattern,'\\'); if (reg_match_one(pattern, ".")) ret[0] = '+'; if (reg_match_one(pattern, "..")) ret[1] = '+'; @@ -169,7 +169,7 @@ struct cli_state *connect_one(char *share) extern struct in_addr ipzero; server = share+2; - share = strchr(server,'\\'); + share = strchr_m(server,'\\'); if (!share) return NULL; *share = 0; share++; @@ -289,7 +289,7 @@ static void get_real_name(struct cli_state *cli, } #if 0 - if (!strchr(short_name,'.')) { + if (!strchr_m(short_name,'.')) { fstrcat(short_name,"."); } #endif @@ -468,7 +468,7 @@ static void usage(void) break; case 'U': pstrcpy(username,optarg); - p = strchr(username,'%'); + p = strchr_m(username,'%'); if (p) { *p = 0; pstrcpy(password, p+1); diff --git a/source3/torture/rpctorture.c b/source3/torture/rpctorture.c index b42c315b1d..1708e9a860 100644 --- a/source3/torture/rpctorture.c +++ b/source3/torture/rpctorture.c @@ -394,12 +394,12 @@ enum client_action { char *lp; pstrcpy(smb_cli->user_name,optarg); - if ((lp=strchr(smb_cli->user_name,'%'))) + if ((lp=strchr_m(smb_cli->user_name,'%'))) { *lp = 0; pstrcpy(password,lp+1); got_pass = True; - memset(strchr(optarg,'%')+1,'X',strlen(password)); + memset(strchr_m(optarg,'%')+1,'X',strlen(password)); } break; } diff --git a/source3/torture/torture.c b/source3/torture/torture.c index a7c50fbfe0..fcf48e0560 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -3233,7 +3233,7 @@ static void usage(void) } fstrcpy(host, &argv[1][2]); - p = strchr(&host[2],'/'); + p = strchr_m(&host[2],'/'); if (!p) { usage(); } @@ -3280,7 +3280,7 @@ static void usage(void) break; case 'U': pstrcpy(username,optarg); - p = strchr(username,'%'); + p = strchr_m(username,'%'); if (p) { *p = 0; pstrcpy(password, p+1); diff --git a/source3/utils/make_printerdef.c b/source3/utils/make_printerdef.c index f403ee79bb..5107b124a7 100644 --- a/source3/utils/make_printerdef.c +++ b/source3/utils/make_printerdef.c @@ -47,8 +47,8 @@ static char *myfgets(char *s, int n, FILE *stream) int i; fgets(s,n,stream); - while ((LString1 = strchr(s,'%')) != NULL) { - if (!(LString2 = strchr(LString1+1,'%'))) break; + while ((LString1 = strchr_m(s,'%')) != NULL) { + if (!(LString2 = strchr_m(LString1+1,'%'))) break; *LString2 = '\0'; pstrcpy(String,LString1+1); i = 0; @@ -56,7 +56,7 @@ static char *myfgets(char *s, int n, FILE *stream) if (strncmp(sbuffer[i],String,strlen(String))==0) { pstrcpy(String,sbuffer[i]); - if ((temp = strchr(String,'=')) != NULL) ++temp; + if ((temp = strchr_m(String,'=')) != NULL) ++temp; pstrcpy(String,temp); break; } @@ -360,7 +360,7 @@ static void scan_copyfiles(FILE *fichier, char *chaine) * This may still be wrong but at least I get the same list * of files as seen on a printer test page. */ - part = strchr(buffer[i],'='); + part = strchr_m(buffer[i],'='); if (part) { /* * Case (1) eg. pscript.hlp = pscript.hl_ - chop after the first name. @@ -379,13 +379,13 @@ static void scan_copyfiles(FILE *fichier, char *chaine) break; } } else { - part = strchr(buffer[i],','); + part = strchr_m(buffer[i],','); if (part) { /* * Cases (2-4) */ - if ((mpart = strrchr(part+1,','))!=NULL) { + if ((mpart = strrchr_m(part+1,','))!=NULL) { /* * Second ',' - case 3 or 4. * Check if the last part is just a number, @@ -507,7 +507,7 @@ static void scan_short_desc(FILE *fichier, char *short_desc) temp = strtok(languagemonitor,","); if (*temp == '"') ++temp; pstrcpy(languagemonitor,temp); - if ((temp = strchr(languagemonitor,'"'))!=NULL) *temp = '\0'; + if ((temp = strchr_m(languagemonitor,'"'))!=NULL) *temp = '\0'; } if (i) fprintf(stderr,"End of section found\n"); diff --git a/source3/utils/nmblookup.c b/source3/utils/nmblookup.c index adb75e6104..3e2f0610e6 100644 --- a/source3/utils/nmblookup.c +++ b/source3/utils/nmblookup.c @@ -303,7 +303,7 @@ int main(int argc,char *argv[]) } } - p = strchr(lookup,'#'); + p = strchr_m(lookup,'#'); if (p) { *p = '\0'; sscanf(++p,"%x",&lookup_type); diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c index 2b1dfe9f92..ec90e7ff1d 100644 --- a/source3/utils/pdbedit.c +++ b/source3/utils/pdbedit.c @@ -391,7 +391,7 @@ static int import_users (char *filename) sam_pwent.acct_ctrl = ACB_NORMAL; /* Get user name */ - p = (unsigned char *) strchr(linebuf, ':'); + p = (unsigned char *) strchr_m(linebuf, ':'); if (p == NULL) { fprintf (stderr, "Error: malformed password entry at line %d !!\n", line); @@ -478,7 +478,7 @@ static int import_users (char *filename) /* Get ACCT_CTRL field if any */ if (*p == '[') { - unsigned char *end_p = (unsigned char *)strchr((char *)p, ']'); + unsigned char *end_p = (unsigned char *)strchr_m((char *)p, ']'); sam_pwent.acct_ctrl = pdb_decode_acct_ctrl((char*)p); if(sam_pwent.acct_ctrl == 0) sam_pwent.acct_ctrl = ACB_NORMAL; diff --git a/source3/utils/rpccheck.c b/source3/utils/rpccheck.c index f504463027..1b00d528ac 100644 --- a/source3/utils/rpccheck.c +++ b/source3/utils/rpccheck.c @@ -46,7 +46,7 @@ main() prs_init(&ps, 1600, 4, ctx, MARSHALL); while (scanf("%s", s)!=-1) { - if (strlen(s)==2 && strchr(filter, *s)!=NULL && strchr(filter, *(s+1))!=NULL) { + if (strlen(s)==2 && strchr_m(filter, *s)!=NULL && strchr_m(filter, *(s+1))!=NULL) { d=strtol(s, NULL, 16); if(!prs_append_data(&ps, &d, 1)) printf("error while reading data\n"); diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c index 9edc35f800..20333f772b 100644 --- a/source3/utils/smbcacls.c +++ b/source3/utils/smbcacls.c @@ -234,7 +234,7 @@ static BOOL parse_ace(SEC_ACE *ace, char *str) struct perm_value *v; ZERO_STRUCTP(ace); - p = strchr(str,':'); + p = strchr_m(str,':'); if (!p) return False; *p = '\0'; p++; @@ -697,7 +697,7 @@ struct cli_state *connect_one(char *share) extern pstring global_myname; fstrcpy(server,share+2); - share = strchr(server,'\\'); + share = strchr_m(server,'\\'); if (!share) return NULL; *share = 0; share++; @@ -843,11 +843,11 @@ You can string acls together with spaces, commas or newlines\n\ if (getenv("USER")) { pstrcpy(username,getenv("USER")); - if ((p=strchr(username,'%'))) { + if ((p=strchr_m(username,'%'))) { *p = 0; pstrcpy(password,p+1); got_pass = True; - memset(strchr(getenv("USER"), '%') + 1, 'X', + memset(strchr_m(getenv("USER"), '%') + 1, 'X', strlen(password)); } } @@ -856,7 +856,7 @@ You can string acls together with spaces, commas or newlines\n\ switch (opt) { case 'U': pstrcpy(username,optarg); - p = strchr(username,'%'); + p = strchr_m(username,'%'); if (p) { *p = 0; pstrcpy(password, p+1); diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c index ebc588eb64..a10e757910 100644 --- a/source3/utils/smbpasswd.c +++ b/source3/utils/smbpasswd.c @@ -603,11 +603,11 @@ static int process_root(int argc, char *argv[]) fstrcpy(user_name, optarg); - if ((lp = strchr(user_name, '%'))) { + if ((lp = strchr_m(user_name, '%'))) { *lp = 0; fstrcpy(user_password, lp + 1); got_pass = True; - memset(strchr(optarg, '%') + 1, 'X', + memset(strchr_m(optarg, '%') + 1, 'X', strlen(user_password)); } @@ -920,7 +920,7 @@ int main(int argc, char **argv) if (!*global_myname) { char *p; fstrcpy(global_myname, myhostname()); - p = strchr(global_myname, '.' ); + p = strchr_m(global_myname, '.' ); if (p) *p = 0; } strupper(global_myname); diff --git a/source3/utils/smbw_sample.c b/source3/utils/smbw_sample.c index 7d6eb7f353..6a8fbf116b 100644 --- a/source3/utils/smbw_sample.c +++ b/source3/utils/smbw_sample.c @@ -51,7 +51,7 @@ int main(int argc, char *argv[]) smbw_setshared("DEBUG", optarg); break; case 'U': - p = strchr(optarg,'%'); + p = strchr_m(optarg,'%'); if (p) { *p=0; smbw_setshared("PASSWORD",p+1); diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index c9080e1994..9b19a6c0fd 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -240,8 +240,8 @@ int main(int argc, char *argv[]) int i; if(deny_list) { for (i=0; deny_list[i]; i++) { - char *hasstar = strchr(deny_list[i], '*'); - char *hasquery = strchr(deny_list[i], '?'); + char *hasstar = strchr_m(deny_list[i], '*'); + char *hasquery = strchr_m(deny_list[i], '?'); if(hasstar || hasquery) { printf("Invalid character %c in hosts deny list (%s) for service %s.\n", hasstar ? *hasstar : *hasquery, deny_list[i], lp_servicename(s) ); @@ -251,8 +251,8 @@ int main(int argc, char *argv[]) if(allow_list) { for (i=0; allow_list[i]; i++) { - char *hasstar = strchr(allow_list[i], '*'); - char *hasquery = strchr(allow_list[i], '?'); + char *hasstar = strchr_m(allow_list[i], '*'); + char *hasquery = strchr_m(allow_list[i], '?'); if(hasstar || hasquery) { printf("Invalid character %c in hosts allow list (%s) for service %s.\n", hasstar ? *hasstar : *hasquery, allow_list[i], lp_servicename(s) ); diff --git a/source3/web/cgi.c b/source3/web/cgi.c index 07f84b2a61..af9d2ea8f6 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -50,12 +50,12 @@ static void unescape(char *buf) { char *p=buf; - while ((p=strchr(p,'+'))) + while ((p=strchr_m(p,'+'))) *p = ' '; p = buf; - while (p && *p && (p=strchr(p,'%'))) { + while (p && *p && (p=strchr_m(p,'%'))) { int c1 = p[1]; int c2 = p[2]; @@ -104,7 +104,7 @@ static char *grab_line(FILE *f, int *cl) if (c == '\r') continue; - if (strchr("\n&", c)) break; + if (strchr_m("\n&", c)) break; ret[i++] = c; @@ -160,7 +160,7 @@ void cgi_load_variables(FILE *f1) ((s=getenv("REQUEST_METHOD")) && strcasecmp(s,"POST")==0))) { while (len && (line=grab_line(f, &len))) { - p = strchr(line,'='); + p = strchr_m(line,'='); if (!p) continue; *p = 0; @@ -200,7 +200,7 @@ void cgi_load_variables(FILE *f1) if ((s=query_string) || (s=getenv("QUERY_STRING"))) { for (tok=strtok(s,"&;");tok;tok=strtok(NULL,"&;")) { - p = strchr(tok,'='); + p = strchr_m(tok,'='); if (!p) continue; *p = 0; @@ -335,7 +335,7 @@ static void base64_decode(char *s) n=i=0; - while (*s && (p=strchr(b64,*s))) { + while (*s && (p=strchr_m(b64,*s))) { idx = (int)(p - b64); byte_offset = (i*6)/8; bit_offset = (i*6)%8; @@ -377,7 +377,7 @@ static BOOL cgi_handle_authorization(char *line) line += 6; while (line[0] == ' ') line++; base64_decode(line); - if (!(p=strchr(line,':'))) { + if (!(p=strchr_m(line,':'))) { /* * Always give the same error so a cracker * cannot tell why we fail. @@ -475,7 +475,7 @@ static void cgi_download(char *file) /* sanitise the filename */ for (i=0;file[i];i++) { - if (!isalnum((int)file[i]) && !strchr("/.-_", file[i])) { + if (!isalnum((int)file[i]) && !strchr_m("/.-_", file[i])) { cgi_setup_error("404 File Not Found","", "Illegal character in filename"); } @@ -491,7 +491,7 @@ static void cgi_download(char *file) "The requested file was not found"); } printf("HTTP/1.0 200 OK\r\n"); - if ((p=strrchr(file,'.'))) { + if ((p=strrchr_m(file,'.'))) { if (strcmp(p,".gif")==0) { printf("Content-Type: image/gif\r\n"); } else if (strcmp(p,".jpg")==0) { @@ -579,15 +579,15 @@ void cgi_setup(char *rootdir, int auth_required) } /* trim the URL */ - if ((p = strchr(url,' ')) || (p=strchr(url,'\t'))) { + if ((p = strchr_m(url,' ')) || (p=strchr_m(url,'\t'))) { *p = 0; } - while (*url && strchr("\r\n",url[strlen(url)-1])) { + while (*url && strchr_m("\r\n",url[strlen(url)-1])) { url[strlen(url)-1] = 0; } /* anything following a ? in the URL is part of the query string */ - if ((p=strchr(url,'?'))) { + if ((p=strchr_m(url,'?'))) { query_string = p+1; *p = 0; } |