Skip to content

erroneous behaviour replacing config vars for sed special characters #46

@tobiasdam

Description

@tobiasdam

Bug description

As the replacement of config var values in env-setup.sh uses sed, the replacement string might contain a "wrong" value.

For instance .env contains RASPAP_SSID_PASS=Change&Me, which results in the line wpa_passphrase=Changewpa_passphrase=ChangeMeMe in /etc/hostapd/hostapd.conf.

Ampersand (&) is apparently a special character in the sed replacement string, that matches the "old string" (the string sed should replace).

An ampersand (‘&’) appearing in the replacement is replaced by the string matching the regular expression. The string ‘#’, where ‘#’ is a digit, is replaced by the text matched by the corresponding backreference expression (see re_format(7)).

All other instances of a backslash will print the literal character following it. Using a backslash before any other character other than ‘&’, ‘\’, digit, newline (ascii 0x0a), and the delimiter is unspecified and might not be portable to other implementations of sed.

https://man.openbsd.org/sed.1

I guess there should be some escaping of special characters

Related issues

  • I have searched this repository for existing issues and pull requests that look similar

Steps to Reproduce

  1. Configure RASPAP_SSID_PASS=Change&Me in docker-compose.yaml
  2. Bring containers up with docker compose up -d
  3. Go inside container with docker execc -it raspap bash
  4. Check file inside container cat /etc/hostapd/hostapd.conf

These common fixes didn't resolve my issue

  • I have tried removing/destroying my container, and re-creating a new container
  • I have tried fresh volume data by backing up and moving/removing the old volume data
  • I have tried running the default docker run example(s) in the readme (removing any customizations I added)
  • I have tried a newer or older version of RaspAP Docker (depending what version the issue started in for me)
  • I have tried running without my volume data mounts to eliminate volumes as the cause

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions