Merge 0fb7abe717fab15465cc508e1952991147d96316 on remote branch

Change-Id: I793a5d2d6e2ca90d6da7c622b1830015a24b40c0
diff --git a/rmnetctl/cli/rmnetcli.c b/rmnetctl/cli/rmnetcli.c
index 4e249a0..11184d7 100644
--- a/rmnetctl/cli/rmnetcli.c
+++ b/rmnetctl/cli/rmnetcli.c
@@ -2,7 +2,7 @@
 
 			R M N E T C L I . C
 
-Copyright (c) 2013-2015, 2017-2019 The Linux Foundation. All rights reserved.
+Copyright (c) 2013-2015, 2017-2020 The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
@@ -320,6 +320,8 @@
 	struct rmnetctl_hndl_s *handle = NULL;
 	uint16_t error_number = RMNETCTL_CFG_FAILURE_NO_COMMAND;
 	int return_code = RMNETCTL_LIB_ERR;
+	int is_new_api = 0;
+
 	if ((!argc) || (!*argv)) {
 		print_rmnet_api_status(RMNETCTL_LIB_ERR,
 		RMNETCTL_CFG_FAILURE_NO_COMMAND);
@@ -332,6 +334,7 @@
 	}
 
 	if (!strcmp(*argv, "-n")) {
+		is_new_api = 1;
 		return_code = rtrmnet_ctl_init(&handle, &error_number);
 		if (return_code != RMNETCTL_SUCCESS) {
 			print_rmnet_api_status(return_code, error_number);
@@ -424,6 +427,7 @@
 			_RMNETCLI_CHECKNULL(argv[3]);
 			_RMNETCLI_CHECKNULL(argv[4]);
 			_RMNETCLI_CHECKNULL(argv[5]);
+			_RMNETCLI_CHECKNULL(argv[6]);
 
 			return_code = rtrmnet_activate_flow(handle, argv[1], argv[2],
 							    _STRTOUI8(argv[3]),
@@ -631,8 +635,10 @@
 	}
 end:
 	print_rmnet_api_status(return_code, error_number);
-	rmnetctl_cleanup(handle);
-	rtrmnet_ctl_deinit(handle);
+	if (is_new_api)
+		rtrmnet_ctl_deinit(handle);
+	else
+		rmnetctl_cleanup(handle);
 	return return_code;
 }
 
diff --git a/rmnetctl/src/librmnetctl.c b/rmnetctl/src/librmnetctl.c
index 52e8ca9..8ad1874 100644
--- a/rmnetctl/src/librmnetctl.c
+++ b/rmnetctl/src/librmnetctl.c
@@ -1142,7 +1142,7 @@
 	     rta = RTA_NEXT(rta, len)) {
 		__u16 type = rta->rta_type & NLA_TYPE_MASK;
 
-		if (type > 0 && type <= maxtype)
+		if (type > 0 && type < maxtype)
 			tb[type] = rta;
 	}
 }