Skip to content

Commit 23d6e92

Browse files
committed
ctbcap: add -- for prevent parameter escape
ref: #48
1 parent c9b40ae commit 23d6e92

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

ctbcap

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ doc() {
7171
echo "8=====================================================D"
7272
;;
7373
help)
74-
echo "Usage: $(basename "$0" 2>/dev/null || echo "$0") [options...] <Username|URL>"
74+
echo "Usage: $(basename -- "$0" 2>/dev/null || echo "$0") [options...] <Username|URL>"
7575
echo
7676
echo "<Username|URL> Streamer's Username or Chat"
7777
echo " Room URL."
@@ -208,7 +208,7 @@ world() {
208208
[ -n "${SHOW_VER}" ] && { doc ver; return 2; }
209209

210210
[ -z "${MODEL}" ] && { msg >&2 "(ERROR) No Username or URL Specified!"; return 1; }
211-
local _MODEL="$(basename "${MODEL}" 2>/dev/null | head -n 1 | tr '[:upper:]' '[:lower:]' | grep -oE '^[a-z0-9_-]+$')"
211+
local _MODEL="$(basename -- "${MODEL}" 2>/dev/null | head -n 1 | tr '[:upper:]' '[:lower:]' | grep -oE '^[a-z0-9_-]+$')"
212212
[ -z "${_MODEL}" ] && { msg >&2 "(ERROR) Invalid Username or URL! [${MODEL}]"; return 1; }
213213
MODEL=${_MODEL}
214214

@@ -230,15 +230,15 @@ world() {
230230

231231
SAVE_PATH="$(echo "${SAVE_PATH}" | sed "s|^~/|${HOME}/|")"
232232
LOG_PATH="$(echo "${LOG_PATH}" | sed "s|^~/|${HOME}/|")"
233-
_SAVE_PATH=$(realpath -m "${SAVE_PATH}" 2>/dev/null)
233+
_SAVE_PATH=$(realpath -m -- "${SAVE_PATH}" 2>/dev/null)
234234
[ -n "${_SAVE_PATH}" ] && SAVE_PATH=${_SAVE_PATH}
235235
[ "${LOG_PATH}" = 0 ] && {
236236
unset LOG_PATH
237237
msg "(NOTICE) Log saving is Disabled."
238238
WATCHDOG_LOGFILE="/dev/null"
239239
FFMPEG_LOGFILE="/dev/null"
240240
} || {
241-
_LOG_PATH=$(realpath -m "${LOG_PATH}" 2>/dev/null)
241+
_LOG_PATH=$(realpath -m -- "${LOG_PATH}" 2>/dev/null)
242242
[ -n "${_LOG_PATH}" ] && LOG_PATH=${_LOG_PATH}
243243
WATCHDOG_LOGFILE="${LOG_PATH}/${MODEL}-${PLATFORM}.log"
244244
FFMPEG_LOGFILE="${LOG_PATH}/${MODEL}-${PLATFORM}.ffmpeg.log"
@@ -361,15 +361,15 @@ init_path() {
361361
[ -z "${DIR%"/"}" ] && { log >&2 "(ERROR) Root directory are not allowed!"; return 1; }
362362

363363
local _DIR="${DIR}"; while [ ! -d "${_DIR}" ]; do # ${DIR} may not created yet
364-
local _DIR="$(dirname "${_DIR}")"
364+
local _DIR="$(dirname -- "${_DIR}")"
365365
done
366-
local FREESPACE="$(( $(df -Pk "${_DIR}" | awk 'NR==2 {print $4}') / 1024 ))"
366+
local FREESPACE="$(( $(df -Pk -- "${_DIR}" | awk 'NR==2 {print $4}') / 1024 ))"
367367
[ "${FREESPACE}" -lt "${SPACE}" ] && {
368368
log >&2 "(ERROR) Space on [${_DIR}/] must be bigger than ${SPACE}MiB! [${FREESPACE}MiB]"
369369
return 1
370370
}
371371

372-
mkdir -p "${DIR}" >/dev/null 2>&1
372+
mkdir -p -- "${DIR}" >/dev/null 2>&1
373373
[ ! -e "${DIR}" ] && { log >&2 "(ERROR) Unable to create directory [${DIR}] !"; return 1; }
374374
[ ! -d "${DIR}" ] && { log >&2 "(ERROR) [${DIR}] is not a directory!"; return 1; }
375375
[ ! -w "${DIR}" ] && { log >&2 "(ERROR) Unable to write to directory [${DIR}/] !"; return 1; }
@@ -396,10 +396,10 @@ init_path() {
396396
[ "${LINE}" -le 0 ] && { true > "${FILE}"; } >/dev/null 2>&1
397397
[ "$(wc -l 2>/dev/null < "${FILE}" || echo 0)" -ge "$(( LINE + 2000 ))" ] && { # 2000 as buffer size
398398
echo "Trim [${FILE}] to ${LINE} lines..."
399-
local BUFFER_FILE="/dev/shm/_$(basename "${FILE}" 2>/dev/null || echo what_the_fuck)_$(date +%s)"
400-
tail -n "${LINE}" "${FILE}" > "${BUFFER_FILE}"
399+
local BUFFER_FILE="/dev/shm/_$(basename -- "${FILE}" 2>/dev/null || echo what_the_fuck)_$(date +%s)"
400+
tail -n "${LINE}" -- "${FILE}" > "${BUFFER_FILE}"
401401
cat "${BUFFER_FILE}" > "${FILE}"
402-
rm -f "${BUFFER_FILE}"
402+
rm -f -- "${BUFFER_FILE}"
403403
}
404404
done
405405
;;

0 commit comments

Comments
 (0)