opal: update some string handling
Make various string handling locations a little more robust. Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
Этот коммит содержится в:
родитель
e6de42c379
Коммит
cef6cf0ac5
@ -10,7 +10,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2007-2008 Sun Microsystems, Inc. All rights reserved.
|
* Copyright (c) 2007-2008 Sun Microsystems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2013-2018 Cisco Systems, Inc. All rights reserved
|
||||||
* Copyright (c) 2014 Intel, Inc. All rights reserved.
|
* Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
@ -56,6 +56,7 @@
|
|||||||
#include "opal/util/show_help.h"
|
#include "opal/util/show_help.h"
|
||||||
#include "opal/util/proc.h"
|
#include "opal/util/proc.h"
|
||||||
#include "opal/util/printf.h"
|
#include "opal/util/printf.h"
|
||||||
|
#include "opal/util/string_copy.h"
|
||||||
#include "opal/mca/btl/base/btl_base_error.h"
|
#include "opal/mca/btl/base/btl_base_error.h"
|
||||||
|
|
||||||
#include "btl_tcp.h"
|
#include "btl_tcp.h"
|
||||||
@ -404,7 +405,8 @@ mca_btl_tcp_endpoint_send_connect_ack(mca_btl_base_endpoint_t* btl_endpoint)
|
|||||||
OPAL_PROCESS_NAME_HTON(guid);
|
OPAL_PROCESS_NAME_HTON(guid);
|
||||||
|
|
||||||
mca_btl_tcp_endpoint_hs_msg_t hs_msg;
|
mca_btl_tcp_endpoint_hs_msg_t hs_msg;
|
||||||
strcpy(hs_msg.magic_id, mca_btl_tcp_magic_id_string);
|
opal_string_copy(hs_msg.magic_id, mca_btl_tcp_magic_id_string,
|
||||||
|
sizeof(hs_msg.magic_id));
|
||||||
hs_msg.guid = guid;
|
hs_msg.guid = guid;
|
||||||
|
|
||||||
if(sizeof(hs_msg) !=
|
if(sizeof(hs_msg) !=
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights
|
* Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights
|
||||||
* reserved.
|
* reserved.
|
||||||
|
* Copyright (c) 2018 Cisco Systems, Inc. All rights reserved
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -137,7 +138,7 @@ int main(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
family = "Unknown";
|
family = "Unknown";
|
||||||
strcpy(addr, "Unknown");
|
opal_string_copy(addr, "Unknown", sizeof(addr));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +166,7 @@ int main(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
family = "Unknown";
|
family = "Unknown";
|
||||||
strcpy(addr, "Unknown");
|
opal_string_copy(addr, "Unknown", sizeof(addr));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
* University of Stuttgart. All rights reserved.
|
* University of Stuttgart. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2018 Cisco Systems, Inc. All rights reserved
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -135,7 +136,9 @@ int opal_openpty(int *amaster, int *aslave, char *name,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (name) {
|
if (name) {
|
||||||
strcpy(name, line);
|
// We don't know the max length of name, but we do know the
|
||||||
|
// max length of the source, so at least use that.
|
||||||
|
opal_string_copy(name, line, sizeof(line));
|
||||||
}
|
}
|
||||||
#ifndef TCSAFLUSH
|
#ifndef TCSAFLUSH
|
||||||
#define TCSAFLUSH TCSETAF
|
#define TCSAFLUSH TCSETAF
|
||||||
|
@ -54,14 +54,12 @@ char *opal_os_path(int relative, ...)
|
|||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
if (0 == num_elements) { /* must be looking for a simple answer */
|
if (0 == num_elements) { /* must be looking for a simple answer */
|
||||||
path = (char *)malloc(3);
|
size_t len = 3;
|
||||||
path[0] = '\0';
|
path = (char *)calloc(len, sizeof(char));
|
||||||
if (relative) {
|
if (relative) {
|
||||||
strcpy(path, ".");
|
path[0] = '.';
|
||||||
strcat(path, path_sep);
|
|
||||||
} else {
|
|
||||||
strcpy(path, path_sep);
|
|
||||||
}
|
}
|
||||||
|
strncat(path, path_sep, len);
|
||||||
return(path);
|
return(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,28 +74,27 @@ char *opal_os_path(int relative, ...)
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
path = (char *)malloc(total_length);
|
path = (char *)calloc(total_length, sizeof(char));
|
||||||
if (NULL == path) {
|
if (NULL == path) {
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
path[0] = 0;
|
|
||||||
|
|
||||||
if (relative) {
|
if (relative) {
|
||||||
strcpy(path, ".");
|
path[0] = '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
va_start(ap, relative);
|
va_start(ap, relative);
|
||||||
if( NULL != (element = va_arg(ap, char*)) ) {
|
if( NULL != (element = va_arg(ap, char*)) ) {
|
||||||
if (path_sep[0] != element[0]) {
|
if (path_sep[0] != element[0]) {
|
||||||
strcat(path, path_sep);
|
strncat(path, path_sep, total_length);
|
||||||
}
|
}
|
||||||
strcat(path, element);
|
strcat(path, element);
|
||||||
}
|
}
|
||||||
while (NULL != (element=va_arg(ap, char*))) {
|
while (NULL != (element=va_arg(ap, char*))) {
|
||||||
if (path_sep[0] != element[0]) {
|
if (path_sep[0] != element[0]) {
|
||||||
strcat(path, path_sep);
|
strncat(path, path_sep, total_length);
|
||||||
}
|
}
|
||||||
strcat(path, element);
|
strncat(path, element, total_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* University of Stuttgart. All rights reserved.
|
* University of Stuttgart. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2009-2018 Cisco Systems, Inc. All rights reserved
|
||||||
* Copyright (c) 2010 IBM Corporation. All rights reserved.
|
* Copyright (c) 2010 IBM Corporation. All rights reserved.
|
||||||
* Copyright (c) 2012-2013 Los Alamos National Security, LLC.
|
* Copyright (c) 2012-2013 Los Alamos National Security, LLC.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -77,6 +77,7 @@
|
|||||||
#include "opal/util/path.h"
|
#include "opal/util/path.h"
|
||||||
#include "opal/util/os_path.h"
|
#include "opal/util/os_path.h"
|
||||||
#include "opal/util/argv.h"
|
#include "opal/util/argv.h"
|
||||||
|
#include "opal/util/printf.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sanity check to ensure we have either statfs or statvfs
|
* Sanity check to ensure we have either statfs or statvfs
|
||||||
@ -146,12 +147,7 @@ char *opal_path_find(char *fname, char **pathv, int mode, char **envv)
|
|||||||
if (!delimit) {
|
if (!delimit) {
|
||||||
fullpath = opal_path_access(fname, env, mode);
|
fullpath = opal_path_access(fname, env, mode);
|
||||||
} else {
|
} else {
|
||||||
pfix = (char*) malloc(strlen(env) + strlen(delimit) + 1);
|
opal_asprintf(&pfix, "%s%s", env, delimit);
|
||||||
if (NULL == pfix) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
strcpy(pfix, env);
|
|
||||||
strcat(pfix, delimit);
|
|
||||||
fullpath = opal_path_access(fname, pfix, mode);
|
fullpath = opal_path_access(fname, pfix, mode);
|
||||||
free(pfix);
|
free(pfix);
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user