[Pkg-ofed-commits] [libfabric] 54/123: prov/sockets: Changed sprintf to snprintf for safety
Ana Beatriz Guerrero López
ana at moszumanska.debian.org
Sat Oct 22 12:28:30 UTC 2016
This is an automated email from the git hooks/post-receive script.
ana pushed a commit to annotated tag v1.1.1
in repository libfabric.
commit 2abb4f144f264ca7964f80523a4ffb54cea9e6a7
Author: shantonu <shantonu.hossain at intel.com>
Date: Wed Aug 26 14:26:51 2015 -0700
prov/sockets: Changed sprintf to snprintf for safety
Signed-off-by: Shantonu Hossain <shantonu.hossain at intel.com>
---
prov/sockets/src/sock_av.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/prov/sockets/src/sock_av.c b/prov/sockets/src/sock_av.c
index 49a1e3b..ef6150a 100644
--- a/prov/sockets/src/sock_av.c
+++ b/prov/sockets/src/sock_av.c
@@ -366,7 +366,7 @@ static int sock_av_insertsym(struct fid_av *av, const char *node, size_t nodecnt
const char *service, size_t svccnt, fi_addr_t *fi_addr,
uint64_t flags, void *context)
{
- int ret = 0, success = 0, err_code = 0;
+ int ret = 0, success = 0, err_code = 0, len1, len2;
int var_port, var_host;
char base_host[FI_NAME_MAX] = {0};
char tmp_host[FI_NAME_MAX] = {0};
@@ -386,20 +386,26 @@ static int sock_av_insertsym(struct fid_av *av, const char *node, size_t nodecnt
fmt = 0;
else
fmt = offset;
-
+
+ assert((hostlen-offset) < FI_NAME_MAX);
strncpy(base_host, node, hostlen - (offset));
var_port = atoi(service);
var_host = atoi(node + hostlen - offset);
for (i = 0; i < nodecnt; i++) {
for (j = 0; j < svccnt; j++) {
- sprintf(tmp_host, "%s%0*d", base_host, fmt, var_host + i);
- sprintf(tmp_port, "%d", var_port + j);
- if ((ret = _sock_av_insertsvc(av, tmp_host, tmp_port, fi_addr, flags,
+ len1 = snprintf(tmp_host, FI_NAME_MAX, "%s%0*d", base_host, fmt, var_host + i);
+ len2 = snprintf(tmp_port, FI_NAME_MAX, "%d", var_port + j);
+ if (len1 > 0 && len1 < FI_NAME_MAX && len2 > 0 && len2 < FI_NAME_MAX) {
+ if ((ret = _sock_av_insertsvc(av, tmp_host, tmp_port, fi_addr, flags,
context, i * nodecnt + j)) == 1) {
- success++;
+ success++;
+ } else {
+ err_code = ret;
+ }
} else {
- err_code = ret;
+ SOCK_LOG_ERROR("Node/service value is not valid\n");
+ err_code = FI_ETOOSMALL;
}
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ofed/libfabric.git
More information about the Pkg-ofed-commits
mailing list