[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |