(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'test git-http-backend-noserver'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HTTPD_DOCUMENT_ROOT_PATH) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_DIRECTORY'))} spids: [14] ) ] spids: [14] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(GREP_STRIPS_CR)})] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:GREP_OPTIONS) op:Equal rhs:{(-U)} spids:[29])] spids: [29] ) (C {(export)} {(GREP_OPTIONS)}) ] spids: [16777215 26] ) ] spids: [16777215 37] ) (FuncDef name: run_backend body: (BraceGroup children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$2'))}) (SimpleCommand words: [{(git)} {(http-backend)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(act.out)} spids: [84] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(act.err)} spids: [87] ) ] more_env: [ (env_pair name: QUERY_STRING val: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*[?]')}) spids: [58 62] ) ) } spids: [56] ) (env_pair name: PATH_TRANSLATED val: { (DQ ($ VSub_Name '$HTTPD_DOCUMENT_ROOT_PATH') (/) (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('[?]*')}) spids: [71 75] ) ) } spids: [67] ) ] ) ] negated: False ) ] spids: [44] ) spids: [40 43] ) (FuncDef name: GET body: (BraceGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUEST_METHOD) op: Equal rhs: {(DQ (GET))} spids: [100] ) ] spids: [100] ) (AndOr children: [ (C {(export)} {(REQUEST_METHOD)}) (AndOr children: [ (C {(run_backend)} {(DQ (/repo.git/) ($ VSub_Number '$1'))}) (AndOr children: [ (C {(sane_unset)} {(REQUEST_METHOD)}) (If arms: [ (if_arm cond: [ (Pipeline children: [ (SimpleCommand words: [{(grep)} {(DQ (Status))} {(act.out)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(act)} spids: [143] ) ] ) ] negated: True ) ] action: [ (SimpleCommand words: [ {(printf)} { (DQ ('Status: 200 OK') (Lit_Other '\\') (r) (Lit_Other '\\') (n) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(act)} spids: [160] ) ] ) ] spids: [16777215 147] ) ] spids: [16777215 164] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (SimpleCommand words: [ {(printf)} { (DQ ('Status: ') ($ VSub_Number '$2') (Lit_Other '\\') (r) (Lit_Other '\\') (n)) } ] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[178])] ) (C {(test_cmp)} {(exp)} {(act)}) ] op_id: Op_DAmp ) ] spids: [97] ) spids: [93 96] ) (FuncDef name: POST body: (BraceGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUEST_METHOD) op: Equal rhs: {(DQ (POST))} spids: [200] ) ] spids: [200] ) (AndOr children: [ (C {(export)} {(REQUEST_METHOD)}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONTENT_TYPE) op: Equal rhs: {(DQ (application/x-) ($ VSub_Number '$1') (-request))} spids: [214] ) ] spids: [214] ) (AndOr children: [ (C {(export)} {(CONTENT_TYPE)}) (AndOr children: [ (C {(run_backend)} {(DQ (/repo.git/) ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))} ) (AndOr children: [ (C {(sane_unset)} {(REQUEST_METHOD)}) (AndOr children: [ (C {(sane_unset)} {(CONTENT_TYPE)}) (If arms: [ (if_arm cond: [ (Pipeline children: [ (SimpleCommand words: [{(grep)} {(DQ (Status))} {(act.out)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(act)} spids: [270] ) ] ) ] negated: True ) ] action: [ (SimpleCommand words: [ {(printf)} { (DQ ('Status: 200 OK') (Lit_Other '\\') (r) (Lit_Other '\\') (n) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(act)} spids: [287] ) ] ) ] spids: [16777215 274] ) ] spids: [16777215 291] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (SimpleCommand words: [ {(printf)} { (DQ ('Status: ') ($ VSub_Number '$3') (Lit_Other '\\') (r) (Lit_Other '\\') (n)) } ] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[305])] ) (C {(test_cmp)} {(exp)} {(act)}) ] op_id: Op_DAmp ) ] spids: [197] ) spids: [193 196] ) (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/t556x_common)}) (FuncDef name: expect_aliased body: (BraceGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUEST_METHOD) op: Equal rhs: {(DQ (GET))} spids: [335] ) ] spids: [335] ) (AndOr children: [ (C {(export)} {(REQUEST_METHOD)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Number '$1')} {(Lit_Other '=')} {(0)}) terminator: <Op_Semi ';'> ) ] action: [(C {(run_backend)} {(DQ ($ VSub_Number '$2'))})] spids: [16777215 360] ) ] else_action: [ (AndOr children: [ (C {(run_backend)} {(DQ ($ VSub_Number '$2'))}) (AndOr children: [ (SimpleCommand words: [ {(echo)} {(DQ ("fatal: '") ($ VSub_Number '$2') ("': aliased"))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(exp.err)} spids: [390] ) ] ) (C {(test_cmp)} {(exp.err)} {(act.err)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [370 403] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(unset)} {(REQUEST_METHOD)}) ] spids: [332] ) spids: [328 331] ) (C {(test_expect_success)} {(SQ <'http-backend blocks bad PATH_INFO'>)} { (SQ <'\n'> <'\tconfig http.getanyfile true &&\n'> <'\n'> <'\texpect_aliased 0 /repo.git/HEAD &&\n'> <'\n'> <'\texpect_aliased 1 /repo.git/../HEAD &&\n'> <'\texpect_aliased 1 /../etc/passwd &&\n'> <'\texpect_aliased 1 ../etc/passwd &&\n'> <'\texpect_aliased 1 /etc//passwd &&\n'> <'\texpect_aliased 1 /etc/./passwd &&\n'> <'\texpect_aliased 1 //domain/data.txt\n'> ) } ) (C {(test_done)}) ] )