summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2014-04-18 14:26:36 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2014-04-18 16:51:54 +0200
commitdc21bbfabd92a982712b4dafb7c3d7ede99f815f (patch)
tree2e0a0f52984131161dbb47589c57941dab4804bd
parent0503af846607121e8f8019e6d0b2a98c204c2b72 (diff)
downloadlvm2-dc21bbfabd92a982712b4dafb7c3d7ede99f815f.tar.gz
cleanup: dmeventd improve _get_status
Use directly dm_asprintf() to allocate buffer with message, and properly detect failing on replacement of snprintf() which also returns -1 on error.
-rw-r--r--daemons/dmeventd/dmeventd.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index 8dac207c9..e13afd2c7 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -503,26 +503,20 @@ static int _get_status(struct message_data *message_data)
static int _get_parameters(struct message_data *message_data) {
struct dm_event_daemon_message *msg = message_data->msg;
- char buf[128];
- int r = -1;
+ int size;
dm_free(msg->data);
+ if ((size = dm_asprintf(&msg->data, "%s pid=%d daemon=%s exec_method=%s",
+ message_data->id, getpid(),
+ _foreground ? "no" : "yes",
+ _systemd_activation ? "systemd" : "direct")) < 0) {
+ stack;
+ return -ENOMEM;
+ }
- if (!(dm_snprintf(buf, sizeof(buf), "%s pid=%d daemon=%s exec_method=%s",
- message_data->id,
- getpid(),
- _foreground ? "no" : "yes",
- _systemd_activation ? "systemd" : "direct")))
- goto_out;
+ msg->size = (uint32_t) size;
- msg->size = strlen(buf) + 1;
- if (!(msg->data = dm_malloc(msg->size)))
- goto_out;
- if (!dm_strncpy(msg->data, buf, msg->size))
- goto_out;
- r = 0;
-out:
- return r;
+ return 0;
}
/* Cleanup at exit. */