* limitations under the License.
*/
+#include <assert.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
char ua_slot_mode = 0;
int dm_verity_status = DM_VERITY_DISABLED;
+// TODO: Consider changing all to PATH_MAX
static char fota_result[MAX_FILE_PATH];
static char fota_cause[MAX_FILE_PATH];
static char fota_status_path[MAX_FILE_PATH];
static char result_folder[MAX_FOLDER_PATH];
static char temp_folder[MAX_FOLDER_PATH];
static char log_path[MAX_FILE_PATH];
-static char blk_dev_arg[MAX_FOLDER_PATH]="/dev/mmcblk0";
+static char blk_dev_arg[PATH_MAX] = "/dev/mmcblk0";
static ua_part_info_t s_part_info[UA_PARTI_MAX];
----------------------------------------------------------------------------*/
int check_ua_op_mode(int argc, char **argv)
{
- char blk_dev[PATH_MAX + 100];
ua_op_mode = -1;
- ua_slot_mode=0;
+ ua_slot_mode = 0;
if (argc == 3) {
ua_op_mode = UA_OP_MODE_FG;
} else if (argc >= 4 && argc <= 6) {
}
if (argc == 6) {
if (argv[4][0] == 'a') {
- ua_slot_mode='a';
+ ua_slot_mode = 'a';
} else if (argv[4][0] == 'b') {
- ua_slot_mode='b';
+ ua_slot_mode = 'b';
} else {
- ua_slot_mode=-1;
+ ua_slot_mode = -1;
}
- char *block_device = realpath(argv[5], blk_dev);
+ // TODO: realpath is fundamentally broken, see man. Not that we care :)
+ char *block_device = realpath(argv[5], blk_dev_arg);
if (!block_device) {
- snprintf(blk_dev, sizeof(blk_dev), "Unable to get realpath for: %s\n", argv[5]);
- print_usage(blk_dev);
+ int max_err_len = strlen(argv[5]) + 100;
+ char err[max_err_len];
+ snprintf(err, max_err_len, "Unable to get realpath for: %s\n", argv[5]);
+ print_usage(err);
return -1;
}
- // sizeof(blk_dev_arg) == PATH_MAX; PATH_MAX > MAX_FOLDER_PATH
- snprintf(blk_dev_arg, sizeof(blk_dev_arg), "%s", blk_dev);
+ // Thanks to realpath call, blk_dev_arg now contains the path.
}
else if (argc == 5) {
- print_usage("Unable to parse arguments, please specify upgrade_slot and block_device or none off them.\n");
+ print_usage("Unable to parse arguments, please specify upgrade_slot and block_device or none of them.\n");
return -1;
}
}