Fix various unsafe usages of strcat/strcpy

Coverity ID: 608930, 743872, 743873, 743874, 608932, 608933, 1424961, 609034
Change-Id: I2702dfb402df7eee500617cb9b8d6f567296fc13
This commit is contained in:
Ho Tuan Kiet 2018-01-14 16:40:35 +07:00 committed by Adrien Destugues
parent 4f2fac067d
commit 9c1f9724c2
5 changed files with 17 additions and 16 deletions

View File

@ -244,12 +244,11 @@ fs_create_attrib(fs_volume *_vol, fs_vnode *_node, const char* name,
// check for EA first... TODO: WRITEME
// check for a named stream
if (true) {
char ntfs_attr_name[MAX_PATH] = {0};
strcat(ntfs_attr_name, kHaikuAttrPrefix);
strcat(ntfs_attr_name,name);
strlcpy(ntfs_attr_name, kHaikuAttrPrefix, sizeof(ntfs_attr_name));
strlcat(ntfs_attr_name, name, sizeof(ntfs_attr_name));
uname = ntfs_calloc(MAX_PATH);
ulen = ntfs_mbstoucs(ntfs_attr_name, &uname);
@ -350,12 +349,11 @@ fs_open_attrib(fs_volume *_vol, fs_vnode *_node, const char *name,
// check for EA first... TODO: WRITEME
// check for a named stream
if (true) {
char ntfs_attr_name[MAX_PATH] = {0};
strcat(ntfs_attr_name, kHaikuAttrPrefix);
strcat(ntfs_attr_name, name);
strlcpy(ntfs_attr_name, kHaikuAttrPrefix, sizeof(ntfs_attr_name));
strlcat(ntfs_attr_name, name, sizeof(ntfs_attr_name));
uname = ntfs_calloc(MAX_PATH);
ulen = ntfs_mbstoucs(ntfs_attr_name, &uname);
@ -693,8 +691,8 @@ fs_remove_attrib(fs_volume *_vol, fs_vnode *_node, const char* name)
goto exit;
}
strcat(ntfs_attr_name, kHaikuAttrPrefix);
strcat(ntfs_attr_name, name);
strlcpy(ntfs_attr_name, kHaikuAttrPrefix, sizeof(ntfs_attr_name));
strlcat(ntfs_attr_name, name, sizeof(ntfs_attr_name));
uname = ntfs_calloc(MAX_PATH);
ulen = ntfs_mbstoucs(ntfs_attr_name, &uname);

View File

@ -365,7 +365,7 @@ fs_mount(fs_volume *_vol, const char *device, ulong flags, const char *args,
.flags = 0
};
strcpy(ns->devicePath,device);
strlcpy(ns->devicePath, device, sizeof(ns->devicePath));
sprintf(lockname, "ntfs_lock %lx", ns->id);
recursive_lock_init_etc(&(ns->vlock), lockname, MUTEX_FLAG_CLONE_NAME);

View File

@ -401,8 +401,8 @@ static int ntfs_drive_letter(ntfs_volume *vol, ntfschar letter)
strcpy(defines,mappingdir);
if ((*drive >= 'a') && (*drive <= 'z'))
*drive += 'A' - 'a';
strcat(defines,drive);
strcat(defines,":");
strlcat(defines, drive, sizeof(defines));
strlcat(defines, ":", sizeof(defines));
olderrno = errno;
ni = ntfs_pathname_to_inode(vol, NULL, defines);
if (ni && !ntfs_inode_close(ni))

View File

@ -207,7 +207,7 @@ compare(
strcpy(tm.args, "(unknown)");
} else {
if ((p = strrchr(tm.args, '/'))) {
strcpy(tm.args, p + 1);
strlcpy(tm.args, p + 1, sizeof(tm.args));
}
}
}

View File

@ -23,7 +23,7 @@ void Usage( )
int main( int argc, char* argv[] )
{
char buf[255];
char buf[255] = {0};
const char* day_strings[] = { "day", "days" };
const char* hour_strings[] = { "hour", "hours" };
const char* minute_strings[] = { "minute", "minutes" };
@ -75,9 +75,12 @@ int main( int argc, char* argv[] )
if( !print_uptime_only )
{
strcpy( buf, ctime( &current_time ) );
buf[strlen( buf ) - 1] = '\0';
if (ctime_r(&current_time, buf) != NULL) {
// ctime_r returns the date string with a trailing \n
// https://linux.die.net/man/3/ctime_r
// but we don't need that, so we clear it
buf[strlen( buf ) - 1] = '\0';
}
}
day_string = (uptime_days == 1) ? day_strings[0] : day_strings[1];