Tighten string helper prototypes and quiet pointer-sign warnings

This commit is contained in:
Mario Fetka
2026-04-20 23:39:42 +02:00
parent f0bfd5a641
commit 33d1da469a
5 changed files with 26 additions and 26 deletions

View File

@@ -29,16 +29,16 @@
/* extern FILE *logfile; */
extern void x_x_xfree(char **p);
extern int x_x_xnewstr(uint8 **p, uint8 *s);
extern int x_x_xnewstr(uint8 **p, const char *s);
#define xfree(p) x_x_xfree((char **)&(p))
#define new_str(p, s) x_x_xnewstr((uint8 **)&(p), s)
#define new_str(p, s) x_x_xnewstr((uint8 **)&(p), (const char *)(s))
extern char *xmalloc(uint size);
extern char *xcmalloc(uint size);
extern int strmaxcpy(uint8 *dest, uint8 *source, int len);
#define xstrcpy(d, s) strmaxcpy((d), (s), sizeof(d)-1)
#define xstrmaxcpy(d, s, len) strmaxcpy((d), (s), min(sizeof(d)-1, (len)) )
extern int strmaxcpy(uint8 *dest, const char *source, int len);
#define xstrcpy(d, s) strmaxcpy((d), (const char *)(s), sizeof(d)-1)
#define xstrmaxcpy(d, s, len) strmaxcpy((d), (const char *)(s), min(sizeof(d)-1, (len)) )
extern void xdprintf(int dlevel, int mode, char *p, ...);
extern void errorp(int mode, char *what, char *p, ...);

View File

@@ -10,7 +10,7 @@
if (CMAKE_SYSTEM_NAME MATCHES Linux)
add_definitions(
-pipe -Wall -DLINUX -D_GNU_SOURCE
-pipe -DLINUX -D_GNU_SOURCE
)
endif (CMAKE_SYSTEM_NAME MATCHES Linux)

View File

@@ -121,7 +121,7 @@ int get_interface_frame_name(char *name, uint32 net)
int fframe = read_interface_data((uint8*) buff, &rnet, NULL, NULL, dname);
if (fframe < 0) continue;
if (rnet == net) {
if (name) strcpy(name, dname);
if (name) strcpy((char*)name, (char*)dname);
frame = fframe;
break;
}
@@ -162,14 +162,14 @@ static void del_special_net(int special, char *devname, int frame)
if (flags & 2){ /* primary == internal net */
sipx->sipx_special = IPX_INTERNAL;
} else
strcpy(id.ifr_name, name);
strcpy(id.ifr_name, (char*)name);
break;
}
}
fclose(f);
}
} else if (special != IPX_INTERNAL) {
if (devname && *devname) strcpy(id.ifr_name, devname);
if (devname && *devname) strcpy(id.ifr_name, (char*)devname);
sipx->sipx_type = frame;
}
sipx->sipx_action = IPX_DLTITF;
@@ -204,7 +204,7 @@ static void del_all_interfaces_nets(void)
sipx->sipx_special = IPX_INTERNAL;
} else {
sipx->sipx_type = frame;
strcpy(id.ifr_name, name);
strcpy(id.ifr_name, (char*)name);
if (flags & 1) /* primary */
sipx->sipx_special = IPX_PRIMARY;
else
@@ -236,7 +236,7 @@ static int add_special_net(int special,
struct sockaddr_ipx *sipx = (struct sockaddr_ipx *)&id.ifr_addr;
memset(&id, 0, sizeof(struct ifreq));
if (special != IPX_INTERNAL){
if (devname && *devname) strcpy(id.ifr_name, devname);
if (devname && *devname) strcpy(id.ifr_name, (char*)devname);
sipx->sipx_type = frame;
} else {
uint32 xx=htonl(node);
@@ -277,7 +277,7 @@ int get_frame_name(uint8 *framename, int frame)
default : framename[0] = '\0';
return(-1);
} /* switch */
strcpy(framename, frname);
strcpy((char*)framename, frname);
return(0);
}

View File

@@ -103,7 +103,7 @@ static void volume_to_namespace_map(int volume, NW_VOL *vol)
{
struct stat statb;
DEV_NAMESPACE_MAP dnm;
if (stat(vol->unixname, &statb)) {
if (stat((char*)vol->unixname, &statb)) {
XDPRINTF((1, 0, "cannot stat vol=%d, `%s`", volume, vol->unixname));
return;
}
@@ -127,7 +127,7 @@ void nw_init_volumes(FILE *f)
firstinit++;
rewind(f);
if (get_ini_entry(f, 61, buff, sizeof(buff))) {
max_nw_vols=atoi(buff);
max_nw_vols=atoi((char*)buff);
if (max_nw_vols < 2)
max_nw_vols=MAX_NW_VOLS;
}
@@ -249,9 +249,9 @@ void nw_init_volumes(FILE *f)
vol->umode_dir = 0;
vol->umode_file = 0;
if (founds > 3) {
vol->umode_dir=octtoi(umode_dirstr);
vol->umode_dir=octtoi((char*)umode_dirstr);
if (founds > 4)
vol->umode_file=octtoi(umode_filestr);
vol->umode_file=octtoi((char*)umode_filestr);
}
used_nw_volumes++;
if (vol->options & VOL_OPTION_ONE_DEV) {
@@ -304,7 +304,7 @@ static int get_unx_home_dir(uint8 *homedir, uint8 *unxlogin)
struct passwd *pw;
int len=0;
endpwent();
if (unxlogin && *unxlogin && NULL != (pw=getpwnam(unxlogin))) {
if (unxlogin && *unxlogin && NULL != (pw=getpwnam((char*)unxlogin))) {
len=strlen(pw->pw_dir);
if (!len) {
*homedir++ = '/';
@@ -362,7 +362,7 @@ void nw_setup_vol_opts(int act_gid, int act_uid,
if (homepathlen > 0 && nw_volumes[k].addonlen) {
if (homepathlen + nw_volumes[k].addonlen > 256) {
flen = 0;
fname = "";
fname = (uint8 *)"";
} else {
xstrcpy(fullname, unixname);
/* concatenation $HOME/ and add/on/ */
@@ -615,7 +615,7 @@ int get_volume_inode(int volnr, struct stat *stb)
if (volnr > -1 && volnr < used_nw_volumes) {
struct stat statb;
if (!stb) stb=&statb;
result = stat(nw_volumes[volnr].unixname, stb);
result = stat((char*)nw_volumes[volnr].unixname, stb);
if (result == -1) result=-0x98;
else result=stb->st_ino;
}
@@ -659,7 +659,7 @@ static void vol_trustee_scan(NW_VOL *v, int volume,
xdprintf(2,0, "vol_trustee_scan, trustee path=`%s`", unixname);
})
if (!stat(unixname, &stb)) {
if (!stat((char*)unixname, &stb)) {
int trustee=tru_get_id_trustee(volume, unixname, &stb,
v->trustee_id);
if (trustee > -1) {
@@ -677,7 +677,7 @@ static void vol_trustee_scan(NW_VOL *v, int volume,
}
}
} else if ((!stat(trusteepath, &stb)) && S_ISDIR(stb.st_mode)) {
} else if ((!stat((char*)trusteepath, &stb)) && S_ISDIR(stb.st_mode)) {
int l=strlen(p);
uint8 *pp = p+l;
*pp='/';

View File

@@ -127,24 +127,24 @@ void x_x_xfree(char **p)
}
}
int strmaxcpy(uint8 *dest, uint8 *source, int len)
int strmaxcpy(uint8 *dest, const char *source, int len)
/* dest must be 1 byte larger than len */
{
int slen = (source != (uint8 *)NULL) ? min(len, strlen((char*)source)) : 0;
int slen = (source != (const char *)NULL) ? min(len, strlen(source)) : 0;
if (slen)
memcpy(dest, source, slen);
dest[slen] = '\0';
return(slen);
}
int x_x_xnewstr(uint8 **p, uint8 *s)
int x_x_xnewstr(uint8 **p, const char *s)
{
int len = (s == NULL) ? 0 : strlen((char*)s);
int len = (s == NULL) ? 0 : strlen(s);
if (*p != (uint8 *)NULL)
free((char*)*p);
*p = (uint8*)xmalloc(len+1);
if (len)
strcpy((char*)(*p), (char*)s);
strcpy((char*)(*p), s);
else
**p = '\0';
return (len);