diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-02-16 13:17:11 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-02-16 13:17:11 +0900 |
commit | 8b8f5064f7094a713a16ade3bf37d8efec601949 (patch) | |
tree | 708d2ce35778632c75a855d194645dda7bd46049 /tdeio | |
parent | d77acb6ca555fabd6f06a0bfbe7e458653f5b38c (diff) | |
download | tdelibs-8b8f5064f7094a713a16ade3bf37d8efec601949.tar.gz tdelibs-8b8f5064f7094a713a16ade3bf37d8efec601949.zip |
Security: remove support for $(...) in KRun which could have allowed
execution of malicious code. This is similar to issue #45 for .desktop
files.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'tdeio')
-rw-r--r-- | tdeio/tdeio/krun.cpp | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/tdeio/tdeio/krun.cpp b/tdeio/tdeio/krun.cpp index ccb638288..89c84952f 100644 --- a/tdeio/tdeio/krun.cpp +++ b/tdeio/tdeio/krun.cpp @@ -931,26 +931,7 @@ void KRun::init() while( nDollarPos != -1 && nDollarPos+1 < static_cast<int>(aValue.length())) { // there is at least one $ - if( (aValue)[nDollarPos+1] == '(' ) { - uint nEndPos = nDollarPos+1; - // the next character is no $ - while ( (nEndPos <= aValue.length()) && (aValue[nEndPos]!=')') ) - nEndPos++; - nEndPos++; - TQString cmd = aValue.mid( nDollarPos+2, nEndPos-nDollarPos-3 ); - - TQString result; - FILE *fs = popen(TQFile::encodeName(cmd).data(), "r"); - if (fs) - { - { - TQTextStream ts(fs, IO_ReadOnly); - result = ts.read().stripWhiteSpace(); - } - pclose(fs); - } - aValue.replace( nDollarPos, nEndPos-nDollarPos, result ); - } else if( (aValue)[nDollarPos+1] != '$' ) { + if( (aValue)[nDollarPos+1] != '$' ) { uint nEndPos = nDollarPos+1; // the next character is no $ TQString aVarName; |