From 776ff528df2e363fd12a8fbaae2489956f676bee Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 14 Jul 2013 14:58:57 +0200 Subject: examples: Make sure we have a valid scp pointer. CID #1032343 --- examples/libssh_scp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/libssh_scp.c b/examples/libssh_scp.c index b7471da6..9027ef99 100644 --- a/examples/libssh_scp.c +++ b/examples/libssh_scp.c @@ -84,9 +84,15 @@ static int opts(int argc, char **argv){ } static struct location *parse_location(char *loc){ - struct location *location=malloc(sizeof(struct location)); + struct location *location; char *ptr; + location = malloc(sizeof(struct location)); + if (location == NULL) { + return NULL; + } + memset(location, 0, sizeof(struct location)); + location->host=location->user=NULL; ptr=strchr(loc,':'); if(ptr != NULL){ @@ -123,6 +129,7 @@ static int open_location(struct location *loc, int flag){ if(ssh_scp_init(loc->scp)==SSH_ERROR){ fprintf(stderr,"error : %s\n",ssh_get_error(loc->session)); ssh_scp_free(loc->scp); + loc->scp = NULL; return -1; } return 0; @@ -140,6 +147,7 @@ static int open_location(struct location *loc, int flag){ if(ssh_scp_init(loc->scp)==SSH_ERROR){ fprintf(stderr,"error : %s\n",ssh_get_error(loc->session)); ssh_scp_free(loc->scp); + loc->scp = NULL; return -1; } return 0; -- cgit v1.2.3