public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2012-03-23 9:48 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2012-03-23 9:48 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2012-03-23 09:48:18
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Return mem fail if hash insert fails
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2363&r2=1.2364
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.67&r2=1.68
--- LVM2/WHATS_NEW 2012/03/23 09:42:36 1.2363
+++ LVM2/WHATS_NEW 2012/03/23 09:48:17 1.2364
@@ -1,5 +1,7 @@
Version 2.02.96 -
================================
+ Check hash insert success in lock_vg clvmd.
+ Check for buffer overwrite in get_cluster_type() clvmd.
Fix global/detect_internal_vg_cache_corruption config check.
Update lcov Makefile target to support all dmeventd plugins.
Fix initializiation of thin monitoring (2.02.92).
--- LVM2/daemons/clvmd/clvmd-command.c 2012/03/01 21:14:43 1.67
+++ LVM2/daemons/clvmd/clvmd-command.c 2012/03/23 09:48:18 1.68
@@ -240,7 +240,8 @@
if (status)
status = errno;
else
- dm_hash_insert(lock_hash, lockname, (void *)(long)lkid);
+ if (!dm_hash_insert(lock_hash, lockname, (void *)(long)lkid))
+ return ENOMEM;
}
return status;
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2012-01-25 22:17 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2012-01-25 22:17 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2012-01-25 22:17:57
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Test for uname result
in fail path initialize to 0.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2243&r2=1.2244
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.62&r2=1.63
--- LVM2/WHATS_NEW 2012/01/25 22:16:04 1.2243
+++ LVM2/WHATS_NEW 2012/01/25 22:17:57 1.2244
@@ -1,5 +1,6 @@
Version 2.02.89 -
==================================
+ Add missing check for uname result in clvmd TEST processing.
Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
Limit alignment to 32bit values.
Check for correctness of uint64 dev_size value.
--- LVM2/daemons/clvmd/clvmd-command.c 2011/12/08 18:32:33 1.62
+++ LVM2/daemons/clvmd/clvmd-command.c 2012/01/25 22:17:57 1.63
@@ -99,7 +99,9 @@
*buf = new_buf;
}
if (*buf) {
- uname(&nodeinfo);
+ if (uname(&nodeinfo))
+ memset(&nodeinfo, 0, sizeof(nodeinfo));
+
*retlen = 1 + dm_snprintf(*buf, buflen,
"TEST from %s: %s v%s",
nodeinfo.nodename, args,
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2011-09-22 9:47 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2011-09-22 9:47 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-09-22 09:47:34
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Clvmd restart cleanup
Patch fixes Clang warnings about possible access via lv_name NULL pointer.
Replaces allocation of memory (strdup) with just pointer assignment
(since execve is being called anyway).
Checks for !*lv_name only when lv_name is defined.
(and as I'm not quite sure what state this really is - putting a FIXME
around - as this rather looks suspicios ??).
Add debug print of passed clvmd args.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2128&r2=1.2129
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.57&r2=1.58
--- LVM2/WHATS_NEW 2011/09/22 09:45:24 1.2128
+++ LVM2/WHATS_NEW 2011/09/22 09:47:34 1.2129
@@ -1,5 +1,6 @@
Version 2.02.89 -
==================================
+ Cleanup restart clvmd code (no memory allocation, debug print passed args).
Add all exclusive locks to clvmd restart option args.
Always send the whole clvmd packet header in refresh commands.
Add missing error checks for some system calls in cmirrord.
--- LVM2/daemons/clvmd/clvmd-command.c 2011/09/22 09:45:24 1.57
+++ LVM2/daemons/clvmd/clvmd-command.c 2011/09/22 09:47:34 1.58
@@ -361,39 +361,38 @@
static int restart_clvmd(void)
{
- char **argv = NULL;
- char *debug_arg = NULL, *lv_name;
- int i, argc = 0, max_locks = 0;
+ const char **argv;
+ char *lv_name;
+ int argc = 0, max_locks = 0;
struct dm_hash_node *hn = NULL;
+ char debug_arg[16];
DEBUGLOG("clvmd restart requested\n");
/* Count exclusively-open LVs */
do {
hn = get_next_excl_lock(hn, &lv_name);
- if (lv_name)
+ if (lv_name) {
max_locks++;
- } while (hn && *lv_name);
+ if (!*lv_name)
+ break; /* FIXME: Is this error ? */
+ }
+ } while (hn);
/* clvmd + locks (-E uuid) + debug (-d X) + NULL */
- argv = malloc((max_locks * 2 + 4) * sizeof(*argv));
- if (!argv)
+ if (!(argv = malloc((max_locks * 2 + 4) * sizeof(*argv))))
goto_out;
/*
* Build the command-line
*/
- argv[argc++] = strdup("clvmd");
- if (!argv[0])
- goto_out;
+ argv[argc++] = "clvmd";
/* Propogate debug options */
if (clvmd_get_debug()) {
- if (!(debug_arg = malloc(16)) ||
- dm_snprintf(debug_arg, 16, "-d%u", clvmd_get_debug()) < 0)
+ if (dm_snprintf(debug_arg, sizeof(debug_arg), "-d%u", clvmd_get_debug()) < 0)
goto_out;
argv[argc++] = debug_arg;
- debug_arg = NULL;
}
/*
@@ -406,30 +405,26 @@
do {
hn = get_next_excl_lock(hn, &lv_name);
if (lv_name) {
- argv[argc] = strdup("-E");
- if (!argv[argc++])
- goto_out;
- argv[argc] = strdup(lv_name);
- if (!argv[argc++])
- goto_out;
-
+ if (!*lv_name)
+ break; /* FIXME: Is this error ? */
+ argv[argc++] = "-E";
+ argv[argc++] = lv_name;
DEBUGLOG("excl lock: %s\n", lv_name);
}
- } while (hn && *lv_name);
- argv[argc++] = NULL;
+ } while (hn);
+ argv[argc] = NULL;
/* Exec new clvmd */
DEBUGLOG("--- Restarting %s ---\n", CLVMD_PATH);
+ for (argc = 1; argv[argc]; argc++) DEBUGLOG("--- %d: %s\n", argc, argv[argc]);
+
/* NOTE: This will fail when downgrading! */
- execve(CLVMD_PATH, argv, NULL);
+ execve(CLVMD_PATH, (char **)argv, NULL);
out:
/* We failed */
DEBUGLOG("Restart of clvmd failed.\n");
- for (i = 0; i < argc && argv[i]; i++)
- free(argv[i]);
free(argv);
- free(debug_arg);
return EIO;
}
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2011-09-22 9:45 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2011-09-22 9:45 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-09-22 09:45:24
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Add all exclusive locks to clvmd restart option args
Fix bug when only every even lock has been passed.
Warning: currently -E causes clvmd to exit with usage text being printed.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2127&r2=1.2128
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.56&r2=1.57
--- LVM2/WHATS_NEW 2011/09/21 13:40:46 1.2127
+++ LVM2/WHATS_NEW 2011/09/22 09:45:24 1.2128
@@ -1,5 +1,6 @@
Version 2.02.89 -
==================================
+ Add all exclusive locks to clvmd restart option args.
Always send the whole clvmd packet header in refresh commands.
Add missing error checks for some system calls in cmirrord.
Add missing log_error() to lvresize command when fsadm tool fails.
--- LVM2/daemons/clvmd/clvmd-command.c 2011/06/03 09:05:30 1.56
+++ LVM2/daemons/clvmd/clvmd-command.c 2011/09/22 09:45:24 1.57
@@ -369,7 +369,6 @@
DEBUGLOG("clvmd restart requested\n");
/* Count exclusively-open LVs */
- hn = NULL;
do {
hn = get_next_excl_lock(hn, &lv_name);
if (lv_name)
@@ -403,6 +402,7 @@
*/
/* Now add the exclusively-open LVs */
+ hn = NULL;
do {
hn = get_next_excl_lock(hn, &lv_name);
if (lv_name) {
@@ -414,7 +414,6 @@
goto_out;
DEBUGLOG("excl lock: %s\n", lv_name);
- hn = get_next_excl_lock(hn, &lv_name);
}
} while (hn && *lv_name);
argv[argc++] = NULL;
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2010-11-30 22:16 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2010-11-30 22:16 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2010-11-30 22:16:25
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Replace snprintf with dm_snprintf
Use dm_snprintf with known error case return code (-1).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1815&r2=1.1816
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.42&r2=1.43
--- LVM2/WHATS_NEW 2010/11/30 22:11:26 1.1815
+++ LVM2/WHATS_NEW 2010/11/30 22:16:25 1.1816
@@ -1,5 +1,6 @@
Version 2.02.78 -
====================================
+ Replace snprintf with dm_snprintf in clvmd-command.c.
Check reallocated buffer for NULL before use in clvmd do_command().
Fix memory leak when VG allocation policy in metadata is invalid.
Ignore unrecognised allocation policy found in metadata instead of aborting.
--- LVM2/daemons/clvmd/clvmd-command.c 2010/11/30 22:11:26 1.42
+++ LVM2/daemons/clvmd/clvmd-command.c 2010/11/30 22:16:25 1.43
@@ -97,10 +97,10 @@
}
if (*buf) {
uname(&nodeinfo);
- *retlen = 1 + snprintf(*buf, buflen,
- "TEST from %s: %s v%s",
- nodeinfo.nodename, args,
- nodeinfo.release);
+ *retlen = 1 + dm_snprintf(*buf, buflen,
+ "TEST from %s: %s v%s",
+ nodeinfo.nodename, args,
+ nodeinfo.release);
}
break;
@@ -121,9 +121,8 @@
status = do_lock_lv(lock_cmd, lock_flags, lockname);
/* Replace EIO with something less scary */
if (status == EIO) {
- *retlen =
- 1 + snprintf(*buf, buflen, "%s",
- get_last_lvm_error());
+ *retlen = 1 + dm_snprintf(*buf, buflen, "%s",
+ get_last_lvm_error());
return EIO;
}
break;
@@ -133,7 +132,7 @@
if (buflen < 3)
return EIO;
if ((locktype = do_lock_query(lockname)))
- *retlen = 1 + snprintf(*buf, buflen, "%s", locktype);
+ *retlen = 1 + dm_snprintf(*buf, buflen, "%s", locktype);
break;
case CLVMD_CMD_REFRESH:
@@ -169,8 +168,8 @@
/* Check the status of the command and return the error text */
if (status) {
- *retlen = 1 + (*buf) ? snprintf(*buf, buflen, "%s",
- strerror(status)) : -1;
+ *retlen = 1 + (*buf) ? dm_snprintf(*buf, buflen, "%s",
+ strerror(status)) : -1;
}
return status;
@@ -377,7 +376,7 @@
/* Propogate debug options */
if (debug) {
if (!(debug_arg = malloc(16)) ||
- snprintf(debug_arg, 16, "-d%d", (int)debug) < 0)
+ dm_snprintf(debug_arg, 16, "-d%d", (int)debug) < 0)
goto_out;
argv[argc++] = debug_arg;
}
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2010-11-30 22:11 zkabelac
0 siblings, 0 replies; 7+ messages in thread
From: zkabelac @ 2010-11-30 22:11 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2010-11-30 22:11:26
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Check reallocated buffer for NULL before use
As *buf is reallocated in case CLVMD_CMD_TEST: test for NULL is needed
before printing status.
(realloc() == NULL and status != 0)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1814&r2=1.1815
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.41&r2=1.42
--- LVM2/WHATS_NEW 2010/11/29 18:35:37 1.1814
+++ LVM2/WHATS_NEW 2010/11/30 22:11:26 1.1815
@@ -1,5 +1,6 @@
Version 2.02.78 -
====================================
+ Check reallocated buffer for NULL before use in clvmd do_command().
Fix memory leak when VG allocation policy in metadata is invalid.
Ignore unrecognised allocation policy found in metadata instead of aborting.
Factor out tag printing into _out_tags and avoid leaking string buffer.
--- LVM2/daemons/clvmd/clvmd-command.c 2010/10/20 14:51:18 1.41
+++ LVM2/daemons/clvmd/clvmd-command.c 2010/11/30 22:11:26 1.42
@@ -169,7 +169,8 @@
/* Check the status of the command and return the error text */
if (status) {
- *retlen = 1 + snprintf(*buf, buflen, "%s", strerror(status));
+ *retlen = 1 + (*buf) ? snprintf(*buf, buflen, "%s",
+ strerror(status)) : -1;
}
return status;
^ permalink raw reply [flat|nested] 7+ messages in thread
* LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c
@ 2006-12-01 22:48 agk
0 siblings, 0 replies; 7+ messages in thread
From: agk @ 2006-12-01 22:48 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2006-12-01 22:48:47
Modified files:
. : WHATS_NEW
daemons/clvmd : clvmd-command.c
Log message:
Fix VG clustered read locks to use PR not CR.
VG metadata reads were not being locked out during metadata updates.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.512&r2=1.513
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.11&r2=1.12
--- LVM2/WHATS_NEW 2006/11/30 23:11:39 1.512
+++ LVM2/WHATS_NEW 2006/12/01 22:48:47 1.513
@@ -1,5 +1,6 @@
Version 2.02.16 -
====================================
+ Fix VG clustered read locks to use PR not CR.
Adjust some alignments for ia64/sparc.
Fix mirror segment removal to use temporary error segment.
Always compile debug logging into clvmd.
--- LVM2/daemons/clvmd/clvmd-command.c 2006/10/09 14:11:57 1.11
+++ LVM2/daemons/clvmd/clvmd-command.c 2006/12/01 22:48:47 1.12
@@ -191,7 +191,11 @@
dm_hash_remove(lock_hash, lockname);
}
else {
-
+ /* Read locks need to be PR; other modes get passed through */
+ if ((lock_cmd & LCK_TYPE_MASK) == LCK_READ) {
+ lock_cmd &= ~LCK_TYPE_MASK;
+ lock_cmd |= LKM_PRMODE;
+ }
status = sync_lock(lockname, (int)lock_cmd, (lock_flags & LCK_NONBLOCK) ? LKF_NOQUEUE : 0, &lkid);
if (status)
status = errno;
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-03-23 9:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-23 9:48 LVM2 ./WHATS_NEW daemons/clvmd/clvmd-command.c zkabelac
-- strict thread matches above, loose matches on Subject: below --
2012-01-25 22:17 zkabelac
2011-09-22 9:47 zkabelac
2011-09-22 9:45 zkabelac
2010-11-30 22:16 zkabelac
2010-11-30 22:11 zkabelac
2006-12-01 22:48 agk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).