mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-08-07 08:02:55 +03:00
examples: Replace strcpy with snprintf
This allows the libssh to build with more memory-strict compliers. Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org> Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
This commit is contained in:
@@ -659,7 +659,6 @@ static int process_readdir(sftp_client_message client_msg)
|
|||||||
DIR *dir = NULL;
|
DIR *dir = NULL;
|
||||||
|
|
||||||
char long_path[PATH_MAX];
|
char long_path[PATH_MAX];
|
||||||
int path_length;
|
|
||||||
int srclen;
|
int srclen;
|
||||||
char *handle_name;
|
char *handle_name;
|
||||||
|
|
||||||
@@ -692,9 +691,6 @@ static int process_readdir(sftp_client_message client_msg)
|
|||||||
sftp_reply_status(client_msg, SSH_FX_INVALID_HANDLE, NULL);
|
sftp_reply_status(client_msg, SSH_FX_INVALID_HANDLE, NULL);
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
strncpy(long_path, handle_name, PATH_MAX - strlen(long_path) - 1);
|
|
||||||
strncat(long_path, "/", PATH_MAX - strlen(long_path) - 1);
|
|
||||||
path_length = (int)strlen(long_path);
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_ENTRIES_NUM_IN_PACKET; i++)
|
for (int i = 0; i < MAX_ENTRIES_NUM_IN_PACKET; i++)
|
||||||
{
|
{
|
||||||
@@ -706,13 +702,13 @@ static int process_readdir(sftp_client_message client_msg)
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
char long_name[MAX_LONG_NAME_LEN];
|
char long_name[MAX_LONG_NAME_LEN];
|
||||||
|
|
||||||
if (strlen(dentry->d_name) + path_length + 1 >= PATH_MAX)
|
if (strlen(dentry->d_name) + srclen + 1 >= PATH_MAX)
|
||||||
{
|
{
|
||||||
printf("handle string length exceed max length!\n");
|
printf("handle string length exceed max length!\n");
|
||||||
sftp_reply_status(client_msg, SSH_FX_INVALID_HANDLE, NULL);
|
sftp_reply_status(client_msg, SSH_FX_INVALID_HANDLE, NULL);
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
strncpy(&long_path[path_length], dentry->d_name, strlen(dentry->d_name) + 1);
|
snprintf(long_path, PATH_MAX, "%s/%s", handle_name, dentry->d_name);
|
||||||
|
|
||||||
if (lstat(long_path, &st) == 0)
|
if (lstat(long_path, &st) == 0)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user