From 29c03d88926f5c6f28f90a296ce62f744372a064 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Fri, 3 Jun 2016 06:21:25 +0200 Subject: asn1Decoding: Simplified allocation and copy Based on patch and suggestions by Pascal Cuoq. --- src/asn1Decoding.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/asn1Decoding.c b/src/asn1Decoding.c index b52e791..078963e 100644 --- a/src/asn1Decoding.c +++ b/src/asn1Decoding.c @@ -142,14 +142,18 @@ main (int argc, char *argv[]) usage (EXIT_FAILURE); } - inputFileAsnName = (char *) malloc (strlen (argv[optind]) + 1); - strcpy (inputFileAsnName, argv[optind]); + inputFileAsnName = strdup(argv[optind]); + inputFileDerName = strdup(argv[optind + 1]); + typeName = strdup(argv[optind + 2]); - inputFileDerName = (char *) malloc (strlen (argv[optind + 1]) + 1); - strcpy (inputFileDerName, argv[optind + 1]); - - typeName = (char *) malloc (strlen (argv[optind + 2]) + 1); - strcpy (typeName, argv[optind + 2]); + if (!(inputFileAsnName && inputFileDerName && typeName)) + { + fprintf(stderr, "allocation failed\n"); + free(inputFileAsnName); + free(inputFileDerName); + free(typeName); + exit(1); + } asn1_result = asn1_parser2tree (inputFileAsnName, &definitions, errorDescription); -- cgit v1.2.1