{"thread":{"id":"22395","subject":"[PATCH] git-cvsserver: allow regex metacharacters in CVSROOT","startedAt":"2010-01-26T14:47:16Z","lastAt":"2010-01-26T14:47:16Z","messageCount":1,"participants":["Gerrit Pape"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"132677","messageId":"20100126144716.15009.qmail@2f965a5eeec988.315fe32.mid.smarden.org","threadId":"22395","inReplyTo":null,"subject":"[PATCH] git-cvsserver: allow regex metacharacters in CVSROOT","fromName":"Gerrit Pape","fromEmail":"pape@smarden.org","sentAt":"2010-01-26T14:47:16Z","receivedAt":"2010-01-26T14:47:16Z","isPatch":true,"sender":{"key":"pape@smarden.org","avatar":"https://avatars.githubusercontent.com/u/143170252?v=4"},"body":"When run in a repository with a path name containing regex metacharacters\n(e.g. +), git-cvsserver failed to split the client request into CVSROOT\nand module.  Now metacharacters are disabled for the value of CVSROOT in\nthe perl regex so that directory names containing metacharacters are\nhandled properly.\n\nSigned-off-by: Gerrit Pape <pape@smarden.org>\n---\n git-cvsserver.perl |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/git-cvsserver.perl b/git-cvsserver.perl\nindex 2804106..13751db 100755\n--- a/git-cvsserver.perl\n+++ b/git-cvsserver.perl\n@@ -408,7 +408,7 @@ sub req_Directory\n     $state->{localdir} = $data;\n     $state->{repository} = $repository;\n     $state->{path} = $repository;\n-    $state->{path} =~ s/^$state->{CVSROOT}\\///;\n+    $state->{path} =~ s/^\\Q$state->{CVSROOT}\\E\\///;\n     $state->{module} = $1 if ($state->{path} =~ s/^(.*?)(\\/|$)//);\n     $state->{path} .= \"/\" if ( $state->{path} =~ /\\S/ );\n \n-- \n1.6.6\n"}]}