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;
}
}