external/efibootmgr
Révision | 47ad01de1434fdd02b74f8b1a8288435e6bbb73d (tree) |
---|---|
l'heure | 2018-06-09 05:04:18 |
Auteur | Peter Jones <pjones@redh...> |
Commiter | Peter Jones |
efibootmgr -e: improve parsing for efivar-36 compat
Signed-off-by: Peter Jones <pjones@redhat.com>
@@ -1289,6 +1289,7 @@ parse_opts(int argc, char **argv) | ||
1289 | 1289 | { |
1290 | 1290 | int c, rc; |
1291 | 1291 | unsigned int num; |
1292 | + int snum; | |
1292 | 1293 | float fnum; |
1293 | 1294 | int option_index = 0; |
1294 | 1295 |
@@ -1390,14 +1391,16 @@ parse_opts(int argc, char **argv) | ||
1390 | 1391 | opts.disk = optarg; |
1391 | 1392 | break; |
1392 | 1393 | case 'e': |
1393 | - rc = sscanf(optarg, "%u", &num); | |
1394 | + rc = sscanf(optarg, "%d", &snum); | |
1394 | 1395 | if (rc == 1) |
1395 | - opts.edd_version = num; | |
1396 | + opts.edd_version = snum; | |
1396 | 1397 | else |
1397 | 1398 | errorx(30, "invalid numeric value %s\n", |
1398 | 1399 | optarg); |
1399 | - if (num != 0 && num != 1 && num != 3) | |
1400 | - errorx(31, "invalid EDD version %d\n", num); | |
1400 | + if (snum == -1) | |
1401 | + snum = 0; | |
1402 | + if (snum != 0 && snum != 1 && snum != 3) | |
1403 | + errorx(31, "invalid EDD version %d\n", snum); | |
1401 | 1404 | break; |
1402 | 1405 | case 'E': |
1403 | 1406 | rc = sscanf(optarg, "%x", &num); |