Commit Graph
2 Commits
  • Trim trailing slash in --home argument's value
    # What's expected
    
    Since in `acme.sh` path strings are concatenated with a hardcoded slash in between, the left operand must never end with a trailing slash for the resulting path to be valid. Otherwise, obviously, the resulting path will have two adjacent slashes in the middle and will not be valid.
    
    # What actually happens
    
    Even though I cannot tell for each of the input params, I know this for sure for the the `--home` argument's value.
    
    If I run `acme.sh` with `--home` argument's value being a path ending in a trailing slash,
    
    ```sh
    acme.sh ... --debug ... --home /some/path/ ... -d somedomainna.me ...
    ```
    
    I get the following (distinct) occurrencies of resulting invalid paths containing two adjacent slashes:
    
    ```
    [...] Using config home:/some/path/
    
    [...] DOMAIN_PATH='/some/path//somedomainna.me'
    
    [...] _CURL='curl --silent --dump-header /some/path//http.header  -L  -g '
    
    [...] The domain key is here: /some/path//somedomainna.me/somedomainna.me.key
    
    [...] _CURL='curl --silent --dump-header /some/path//http.header  -L  -g  -I  '
    
    [...] Your cert is in: /some/path//somedomainna.me/somedomainna.me.cer
    
    [...] Your cert key is in: /some/path//somedomainna.me/somedomainna.me.key
    
    [...] The intermediate CA cert is in: /some/path//somedomainna.me/ca.cer
    
    [...] And the full chain certs is there: /some/path//somedomainna.me/fullchain.cer
    
    ```
    
    # Suggested fix
    
    Trim trailing slash in `--home` argument's value from the get-go.