Changeset 17604 in niluje


Ignore:
Timestamp:
Jul 30, 2020, 7:45:47 PM (9 days ago)
Author:
NiLuJe
Message:

MobiCover:

  • Clear up realpath usage
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Configs/trunk/Kindle/Touch_Hacks/MobiCover/LibMobi/mobicover.c

    r17603 r17604  
    191191        } else {
    192192                // Use the sha1 of the full path, like the Kindle
    193                 char     abspath[PATH_MAX];
     193                char abspath[PATH_MAX];
    194194                if (realpath(fullpath, abspath) == NULL) {
    195195                        fprintf(stderr, "Unable to resolve input file's path (realpath: %m)!\n");
     
    269269                                              { NULL, 0, NULL, 0 } };
    270270
    271         bool  errfnd       = false;
     271        bool  errfnd = false;
     272        char  _outdir[PATH_MAX];
    272273        char* outdir       = NULL;
    273274        bool  do_typecheck = false;
     
    276277                switch (opt) {
    277278                        case 'o':
    278                                 outdir = optarg;
     279                                // Only deal with canonical paths
     280                                if (realpath(optarg, _outdir) == NULL) {
     281                                        fprintf(stderr,
     282                                                "Unable to resolve output directory path `%s` (realpath: %m)!\n",
     283                                                optarg);
     284                                        return ERRCODE(EXIT_FAILURE);
     285                                }
     286                                outdir = _outdir;
    279287                                break;
    280288                        case 'k':
     
    302310        if (optind < argc) {
    303311                while (optind < argc) {
    304                         char* infile = argv[optind++];
     312                        char* inarg = argv[optind++];
     313                        // Only deal with canonical paths
     314                        char infile[PATH_MAX];
     315                        if (realpath(inarg, infile) == NULL) {
     316                                fprintf(stderr, "Unable to resolve input file's path `%s` (realpath: %m)!\n", inarg);
     317                                return ERRCODE(EXIT_FAILURE);
     318                        }
    305319
    306320                        // Reject unknown file extensions
Note: See TracChangeset for help on using the changeset viewer.