[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] xenstore: sprintf->snprintf, and fix for OpenBSD.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxxxxxxxx>
# Date 1191589896 -3600
# Node ID 61ef23e45e9c8fa17dfba7ef62d9390af5d806f7
# Parent  1d120f6807bacf4b77faafae8efa42f0eb535e2c
xenstore: sprintf->snprintf, and fix for OpenBSD.
Signed-off-by: Christoph Egger <Christoph.Egger@xxxxxxx>
---
 tools/xenstore/xenstored_core.c        |    4 ++--
 tools/xenstore/xenstored_transaction.c |    2 +-
 tools/xenstore/xs.c                    |   13 +++++++------
 tools/xenstore/xs_lib.c                |    9 +++++----
 tools/xenstore/xs_lib.h                |    3 ++-
 tools/xenstore/xsls.c                  |    2 +-
 6 files changed, 18 insertions(+), 15 deletions(-)

diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xenstored_core.c
--- a/tools/xenstore/xenstored_core.c   Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xenstored_core.c   Fri Oct 05 14:11:36 2007 +0100
@@ -685,7 +685,7 @@ static char *perms_to_strings(const void
        char buffer[MAX_STRLEN(unsigned int) + 1];
 
        for (*len = 0, i = 0; i < num; i++) {
-               if (!xs_perm_to_string(&perms[i], buffer))
+               if (!xs_perm_to_string(&perms[i], buffer, sizeof(buffer)))
                        return NULL;
 
                strings = talloc_realloc(ctx, strings, char,
@@ -1659,7 +1659,7 @@ static void write_pidfile(const char *pi
        if (lockf(fd, F_TLOCK, 0) == -1)
                exit(0);
 
-       len = sprintf(buf, "%ld\n", (long)getpid());
+       len = snprintf(buf, sizeof(buf), "%ld\n", (long)getpid());
        if (write(fd, buf, len) != len)
                barf_perror("Writing pid file %s", pidfile);
 }
diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xenstored_transaction.c
--- a/tools/xenstore/xenstored_transaction.c    Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xenstored_transaction.c    Fri Oct 05 14:11:36 2007 +0100
@@ -181,7 +181,7 @@ void do_transaction_start(struct connect
        talloc_set_destructor(trans, destroy_transaction);
        conn->transaction_started++;
 
-       sprintf(id_str, "%u", trans->id);
+       snprintf(id_str, sizeof(id_str), "%u", trans->id);
        send_reply(conn, XS_TRANSACTION_START, id_str, strlen(id_str)+1);
 }
 
diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xs.c
--- a/tools/xenstore/xs.c       Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xs.c       Fri Oct 05 14:11:36 2007 +0100
@@ -20,6 +20,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <sys/uio.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #include <string.h>
@@ -519,7 +520,7 @@ bool xs_set_permissions(struct xs_handle
        for (i = 0; i < num_perms; i++) {
                char buffer[MAX_STRLEN(unsigned int)+1];
 
-               if (!xs_perm_to_string(&perms[i], buffer))
+               if (!xs_perm_to_string(&perms[i], buffer, sizeof(buffer)))
                        goto unwind;
 
                iov[i+1].iov_base = strdup(buffer);
@@ -687,9 +688,9 @@ bool xs_introduce_domain(struct xs_handl
        char eventchn_str[MAX_STRLEN(eventchn)];
        struct iovec iov[3];
 
-       sprintf(domid_str, "%u", domid);
-       sprintf(mfn_str, "%lu", mfn);
-       sprintf(eventchn_str, "%u", eventchn);
+       snprintf(domid_str, sizeof(domid_str), "%u", domid);
+       snprintf(mfn_str, sizeof(mfn_str), "%lu", mfn);
+       snprintf(eventchn_str, sizeof(eventchn_str), "%u", eventchn);
 
        iov[0].iov_base = domid_str;
        iov[0].iov_len = strlen(domid_str) + 1;
@@ -708,7 +709,7 @@ static void * single_with_domid(struct x
 {
        char domid_str[MAX_STRLEN(domid)];
 
-       sprintf(domid_str, "%u", domid);
+       snprintf(domid_str, sizeof(domid_str), "%u", domid);
 
        return xs_single(h, XBT_NULL, type, domid_str, NULL);
 }
@@ -728,7 +729,7 @@ char *xs_get_domain_path(struct xs_handl
 {
        char domid_str[MAX_STRLEN(domid)];
 
-       sprintf(domid_str, "%u", domid);
+       snprintf(domid_str, sizeof(domid_str), "%u", domid);
 
        return xs_single(h, XBT_NULL, XS_GET_DOMAIN_PATH, domid_str, NULL);
 }
diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xs_lib.c
--- a/tools/xenstore/xs_lib.c   Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xs_lib.c   Fri Oct 05 14:11:36 2007 +0100
@@ -17,12 +17,12 @@
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-#include "xs_lib.h"
 #include <unistd.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
+#include "xs_lib.h"
 
 /* Common routines for the Xen store daemon and client library. */
 
@@ -53,7 +53,7 @@ const char *xs_daemon_tdb(void)
 const char *xs_daemon_tdb(void)
 {
        static char buf[PATH_MAX];
-       sprintf(buf, "%s/tdb", xs_daemon_rootdir());
+       snprintf(buf, sizeof(buf), "%s/tdb", xs_daemon_rootdir());
        return buf;
 }
 
@@ -143,7 +143,8 @@ bool xs_strings_to_perms(struct xs_permi
 }
 
 /* Convert permissions to a string (up to len MAX_STRLEN(unsigned int)+1). */
-bool xs_perm_to_string(const struct xs_permissions *perm, char *buffer)
+bool xs_perm_to_string(const struct xs_permissions *perm,
+                       char *buffer, size_t buf_len)
 {
        switch (perm->perms) {
        case XS_PERM_WRITE:
@@ -162,7 +163,7 @@ bool xs_perm_to_string(const struct xs_p
                errno = EINVAL;
                return false;
        }
-       sprintf(buffer+1, "%i", (int)perm->id);
+       snprintf(buffer+1, buf_len-1, "%i", (int)perm->id);
        return true;
 }
 
diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xs_lib.h
--- a/tools/xenstore/xs_lib.h   Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xs_lib.h   Fri Oct 05 14:11:36 2007 +0100
@@ -61,7 +61,8 @@ bool xs_strings_to_perms(struct xs_permi
                         const char *strings);
 
 /* Convert permissions to a string (up to len MAX_STRLEN(unsigned int)+1). */
-bool xs_perm_to_string(const struct xs_permissions *perm, char *buffer);
+bool xs_perm_to_string(const struct xs_permissions *perm,
+                       char *buffer, size_t buf_len);
 
 /* Given a string and a length, count how many strings (nul terms). */
 unsigned int xs_count_strings(const char *strings, unsigned int len);
diff -r 1d120f6807ba -r 61ef23e45e9c tools/xenstore/xsls.c
--- a/tools/xenstore/xsls.c     Fri Oct 05 10:38:52 2007 +0100
+++ b/tools/xenstore/xsls.c     Fri Oct 05 14:11:36 2007 +0100
@@ -87,7 +87,7 @@ void print_dir(struct xs_handle *h, char
                 for (i = 0; i < nperms; i++) {
                     if (i)
                         putchar(',');
-                    xs_perm_to_string(perms+i, buf);
+                    xs_perm_to_string(perms+i, buf, sizeof(buf));
                     fputs(buf, stdout);
                 }
                 putchar(')');

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.