From 446e71501b40a5a8f7b53e3086d32404111da37c Mon Sep 17 00:00:00 2001 From: Mohammed Junaid Ahmed Date: Tue, 12 Jul 2011 12:31:37 +0000 Subject: mgmt/glusterd: write complete string contained in value in to the volinfo file. Currently, we are writing 4096 bytes of value variable to the volinfo file irrespective of its lenght, thus tampering with the volinfo file structure. Signed-off-by: Junaid Signed-off-by: Anand Avati BUG: 3154 (glusterd fails to restart) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3154 --- xlators/mgmt/glusterd/src/glusterd-store.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index ba59d790ed2..f3fa2c0aabe 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -908,16 +908,20 @@ int32_t glusterd_store_save_value (int fd, char *key, char *value) { int32_t ret = -1; - char buf[4096] = {0,}; GF_ASSERT (fd > 0); GF_ASSERT (key); GF_ASSERT (value); - snprintf (buf, sizeof (buf), "%s=%s\n", key, value); - ret = write (fd, buf, strlen (buf)); + ret = write (fd, key, strlen (key)); + if (ret > 0) + ret = write (fd, "=", strlen ("=")); + if (ret > 0) + ret = write (fd, value, strlen (value)); + if (ret > 0) + ret = write (fd, "\n", strlen ("\n")); - if (ret < 0) { + if (ret <= 0) { gf_log ("", GF_LOG_CRITICAL, "Unable to store key: %s," "value: %s, error: %s", key, value, strerror (errno)); -- cgit