{mount-common|fusermount|mount_darwin|umountd}.c: strncpy()->sprintf(), reduce strlen()'s
strncpy may not be very efficient for short strings copied into a large buffer: If the length of src is less than n, strncpy() writes additional null bytes to dest to ensure that a total of n bytes are written. Instead, use snprintf(). Also: - save the result of strlen() and re-use it when possible. - move from strlen to SLEN (sizeof() ) for const strings. Compile-tested only! Change-Id: I369209b36d8356c3fe00d32f8bf56e74cf9963db updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
This commit is contained in:
parent
938849a417
commit
a2c562eb40
@ -32,7 +32,7 @@ mtab_needs_update (const char *mnt)
|
||||
struct stat stbuf;
|
||||
|
||||
/* If mtab is within new mount, don't touch it */
|
||||
if (strncmp (mnt, _PATH_MOUNTED, strlen (mnt)) == 0 &&
|
||||
if (strncmp (mnt, _PATH_MOUNTED, sizeof (_PATH_MOUNTED) - 1) == 0 &&
|
||||
_PATH_MOUNTED[strlen (mnt)] == '/')
|
||||
return 0;
|
||||
|
||||
|
@ -520,20 +520,22 @@ static void parse_line(char *line, int linenum)
|
||||
|
||||
static void read_conf(void)
|
||||
{
|
||||
int len;
|
||||
FILE *fp = fopen(FUSE_CONF, "r");
|
||||
if (fp != NULL) {
|
||||
int linenum = 1;
|
||||
char line[256];
|
||||
int isnewline = 1;
|
||||
while (fgets(line, sizeof(line), fp) != NULL) {
|
||||
len = strlen (line);
|
||||
if (isnewline) {
|
||||
if (strlen(line) && line[strlen(line)-1] == '\n') {
|
||||
if (len && line[len-1] == '\n') {
|
||||
strip_line(line);
|
||||
parse_line(line, linenum);
|
||||
} else {
|
||||
isnewline = 0;
|
||||
}
|
||||
} else if(strlen(line) && line[strlen(line)-1] == '\n') {
|
||||
} else if (len && line[len-1] == '\n') {
|
||||
fprintf(stderr, "%s: reading %s: line %i too long\n", progname, FUSE_CONF, linenum);
|
||||
|
||||
isnewline = 1;
|
||||
|
@ -94,7 +94,7 @@ gf_fuse_mount (const char *mountpoint, char *fsname, char *mnt_param,
|
||||
}
|
||||
|
||||
/* sysctlbyname() includes the trailing '\0' in version_len */
|
||||
version_len_desired = strlen("2.x.y") + 1;
|
||||
version_len_desired = sizeof ("2.x.y");
|
||||
|
||||
if (version_len != version_len_desired) {
|
||||
gf_log ("glusterfs-fuse", GF_LOG_ERROR,
|
||||
|
@ -66,7 +66,7 @@ sanity_check (char *path, dev_t *devp)
|
||||
if (*devp == -1 && ret == 0)
|
||||
*devp = st.st_dev;
|
||||
|
||||
strncpy (pathtmp, path, PATH_MAX);
|
||||
snprintf (pathtmp, PATH_MAX, "%s", path);
|
||||
parent = dirname (pathtmp);
|
||||
|
||||
if (stat (parent, &parent_st) != 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user