mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-18 10:04:20 +03:00
lvmlockd: shorter code
gcc warns here about storring 69 bytes in 64 byte array (losing potentially 4 bytes from 'ls->name'). lvmlockd-core.c:2657:36: warning: ‘%s’ directive output may be truncated writing up to 64 bytes into a region of size 60 [-Wformat-truncation=] snprintf(tmp_name, MAX_NAME, "REM:%s", ls->name); ^~ lvmlockd-core.c:2657:2: note: ‘snprintf’ output between 5 and 69 bytes into a destination of size 64 snprintf(tmp_name, MAX_NAME, "REM:%s", ls->name); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Replaced with slightly better code - but it still misses error path what to do if the name would be truncated... - so added FIXME. Also using all bytes for snprintf() buffer size (as the size is with \0 included)
This commit is contained in:
parent
0e42b31dc3
commit
d4ce98de4d
@ -2653,9 +2653,9 @@ out_act:
|
|||||||
if (ls->lm_type == LD_LM_DLM && !strcmp(ls->name, gl_lsname_dlm))
|
if (ls->lm_type == LD_LM_DLM && !strcmp(ls->name, gl_lsname_dlm))
|
||||||
global_dlm_lockspace_exists = 0;
|
global_dlm_lockspace_exists = 0;
|
||||||
/* Avoid a name collision of the same lockspace is added again before this thread is cleaned up. */
|
/* Avoid a name collision of the same lockspace is added again before this thread is cleaned up. */
|
||||||
memset(tmp_name, 0, sizeof(tmp_name));
|
/* FIXME: detect loss of 4 chars? (use 'size(tmp_name) == (MAX_NAME - 4)' and fail??) */
|
||||||
snprintf(tmp_name, MAX_NAME, "REM:%s", ls->name);
|
dm_strncpy(tmp_name, ls->name, sizeof(tmp_name));
|
||||||
memcpy(ls->name, tmp_name, MAX_NAME);
|
snprintf(ls->name, sizeof(ls->name), "REM:%s", tmp_name);
|
||||||
pthread_mutex_unlock(&lockspaces_mutex);
|
pthread_mutex_unlock(&lockspaces_mutex);
|
||||||
|
|
||||||
/* worker_thread will join this thread, and free the ls */
|
/* worker_thread will join this thread, and free the ls */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user