Skip to content

Commit b8f82b2

Browse files
committed
Escape % chars in user input before passing to sprintf, fixes composer#11359
1 parent efc105e commit b8f82b2

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/Composer/DependencyResolver/Problem.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public static function formatDeduplicatedRules(array $rules, string $indent, Rep
115115
foreach ($rules as $rule) {
116116
$message = $rule->getPrettyString($repositorySet, $request, $pool, $isVerbose, $installedMap, $learnedPool);
117117
if (in_array($rule->getReason(), $deduplicatableRuleTypes, true) && Preg::isMatchStrictGroups('{^(?P<package>\S+) (?P<version>\S+) (?P<type>requires|conflicts)}', $message, $m)) {
118+
$message = str_replace('%', '%%', $message);
118119
$template = Preg::replace('{^\S+ \S+ }', '%s%s ', $message);
119120
$messages[] = $template;
120121
$templates[$template][$m[1]][$parser->normalize($m[2])] = $m[2];

0 commit comments

Comments
 (0)