|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0870 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 0870.
Report 0870 Actions
Problem Report Number 0870 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0385 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1995-11-13 08:00 Product Standard Commands and Utilities V2 (UNIX 95) Certification Program The Open Brand certification program Test Suite VSC version 4.1.5 Test Identification POSIX.annexA/lex 53 Problem Summary TSD4C.00126 This test may generate misleading output. Problem Text
This test may generate misleading output.
This test reads a number of lines from a file then sends
them to a function for output to the test journal. On our system
one of the lines read has the following general format
YY_DECL char * yytext = yy_tbuf;
The test assigns this line to a varaible called line. It then
tries to send this to the journal via the command.
JrnlMsg $line
The shell does variable substitution which expands the command to
JrnlMsg YY_DECL char * yytext = yy_tbuf;
It then tries pathname expansion. Since the * matches everything
in the current directory we get the unexpected output shown above.
Since this contains information necessary to inspect and approve the
output we feel a TSD should be granted.
This problem also manifests itself with other less critical lines that
also contain the string "yytext" (mostly comments containing "*" or
beginning with "/*" which expands to all files in the root directory).
If the JrnlMsg line is changed to
JrnlMsg "$line"
this behavior should not occur.
The same problem applies to test 52.Test Output
200|1 1 11:02:11|TP Start
520|1 1 2359300 1 1|Assertion #53 (C): Test the %pointer semantic and yytext ty
520|1 1 2359300 1 2| <LC> ping
520|1 1 2359300 1 11|the following lines are grep'ed from lex.yy.c
520|1 1 2359300 1 12|#define YYECHO fputs(yytext, yyout)
520|1 1 2359300 1 13|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
520|1 1 2359300 1 14| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
520|1 1 2359300 1 15| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
520|1 1 2359300 1 16| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
520|1 1 2359300 1 17| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
520|1 1 2359300 1 18| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
520|1 1 2359300 1 19| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
520|1 1 2359300 1 20| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
520|1 1 2359300 1 21| <LC> tmpres tet_xres If %array is used (or defaulted), y
520|1 1 2359300 1 22| <LC> ytext[] contains the token.
520|1 1 2359300 1 23|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
520|1 1 2359300 1 24| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
520|1 1 2359300 1 25| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
520|1 1 2359300 1 26| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
520|1 1 2359300 1 27| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
520|1 1 2359300 1 28| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
520|1 1 2359300 1 29| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
520|1 1 2359300 1 30| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
520|1 1 2359300 1 31| <LC> tmpres tet_xres If %pointer is used, yytext is a po
520|1 1 2359300 1 32| <LC> inter to yy_tbuf[].
520|1 1 2359300 1 33|YY_DECL char CEEDUMP.19951101.113741.238485523 CEEDUMP.199
520|1 1 2359300 1 34| <LC> 51101.115532.158203918 lex.ex lex.sh lex.yy.c lex.y
520|1 1 2359300 1 35| <LC> y.o lex_eso_51_1 lex_in_51_1 lex_in_51_2 lex_in_51_
520|1 1 2359300 1 36| <LC> 3 lex_in_53_1 lex_out_53_1 lex_prog_11_1.o lex_prog
520|1 1 2359300 1 37| <LC> _6_1.o lex_prog_6_2.o lex_prog_7_1.o lex_prog_7_2.o
520|1 1 2359300 1 38| <LC> lex_prog_7_3.o makefile out.stderr out.stdout tet1
520|1 1 2359300 1 39| <LC> .139132955 tet1.139395099 tet1.200015875 tet1.20014
520|1 1 2359300 1 40| <LC> 6947 tet_deletes tet_lock tet_stderr tet_tests tet_
520|1 1 2359300 1 41| <LC> tmpfiles tet_tmpres tet_xres yytext = yy_tbuf;
520|1 1 2359300 1 42|/bin /dev /etc /lib /samples /tmp /u /usr yy_sbuf[0:yyleng
520|1 1 2359300 1 43| <LC> -1] contains the states corresponding to yytext.
520|1 1 2359300 1 44|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
520|1 1 2359300 1 45| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
520|1 1 2359300 1 46| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
520|1 1 2359300 1 47| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
520|1 1 2359300 1 48| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
520|1 1 2359300 1 49| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
520|1 1 2359300 1 50| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
520|1 1 2359300 1 51| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
520|1 1 2359300 1 52| <LC> tmpres tet_xres yytext[0:yyleng-1] contains the cur
520|1 1 2359300 1 53| <LC> rent token.
520|1 1 2359300 1 54|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
520|1 1 2359300 1 55| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
520|1 1 2359300 1 56| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
520|1 1 2359300 1 57| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
520|1 1 2359300 1 58| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
520|1 1 2359300 1 59| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
520|1 1 2359300 1 60| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
520|1 1 2359300 1 61| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
520|1 1 2359300 1 62| <LC> tmpres tet_xres yytext[yyleng:yy_end-1] contains pu
520|1 1 2359300 1 63| <LC> shed-back characters.
520|1 1 2359300 1 64|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
520|1 1 2359300 1 65| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
520|1 1 2359300 1 66| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
520|1 1 2359300 1 67| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
520|1 1 2359300 1 68| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
520|1 1 2359300 1 69| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
520|1 1 2359300 1 70| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
520|1 1 2359300 1 71| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
520|1 1 2359300 1 72| <LC> tmpres tet_xres yy_save contains yytext[yyleng], wh
520|1 1 2359300 1 73| <LC> ich is set to '\0'.
520|1 1 2359300 1 74|YY_DECL int yyleng = 0; /bin /dev /etc /lib /samples /tmp
520|1 1 2359300 1 75| <LC> /u /usr yytext token length tet_lock/
520|1 1 2359300 1 76|static char yy_save; /bin /dev /etc /lib /samples /tmp /u
520|1 1 2359300 1 77| <LC> /usr saved yytext[yyleng] tet_lock/
520|1 1 2359300 1 78|#define YY_USER { /bin /dev /etc /lib /samples /tmp /u /us
520|1 1 2359300 1 79| <LC> r set up yytext for user tet_lock/ \
520|1 1 2359300 1 80|yy_save = yytext[yyleng]; \
520|1 1 2359300 1 81|yytext[yyleng] = 0; \
520|1 1 2359300 1 82|#define YY_SCANNER { /bin /dev /etc /lib /samples /tmp /u
520|1 1 2359300 1 83| <LC> /usr set up yytext for scanner tet_lock/ \
520|1 1 2359300 1 84|yytext[yyleng] = yy_save; \
520|1 1 2359300 1 85|#else /bin /dev /etc /lib /samples /tmp /u /usr not-so eff
520|1 1 2359300 1 86| <LC> icient push-back for yytext mungers tet_lock/
520|1 1 2359300 1 87|memmove(yy_push, yytext+yyleng, n); \
520|1 1 2359300 1 88|yytext[yyleng] = 0; \
520|1 1 2359300 1 89|memmove(yytext+yyleng, yy_push, n); \
520|1 1 2359300 1 90|yy_lastc = yytext[i-1];
520|1 1 2359300 1 91|if (yytext[--i] == YYNEWLINE)
520|1 1 2359300 1 92|memmove(yytext, yytext+yyleng, (size_t) yy_end);
520|1 1 2359300 1 93|c = yytext[i]; /bin /dev /etc /lib /samples /tmp /u /usr g
520|1 1 2359300 1 94| <LC> et pushback char tet_lock/
520|1 1 2359300 1 95|yytext[i] = (char) c;
520|1 1 2359300 1 96|output(yytext[yyoldi]);
520|1 1 2359300 1 97|i = yyoleng; /bin /dev /etc /lib /samples /tmp /u /usr res
520|1 1 2359300 1 98| <LC> tore original yytext tet_lock/
520|1 1 2359300 1 99|goto yy_search; /bin /dev /etc /lib /samples /tmp /u /usr
520|1 1 2359300 1 100| <LC> try shorter yytext tet_lock/
520|1 1 2359300 1 101|yy_lastc = yytext[i-1];
520|1 1 2359300 1 102|(void) memcpy(p->savetext, yytext, sizeof yytext);
520|1 1 2359300 1 103|(void) memcpy(yytext, p->savetext, sizeof yytext);
520|1 1 2359300 1 104|memmove(yytext+yyleng, yytext+yyleng+1,
520|1 1 2359300 1 105|yytext[yyleng] = yy_save;
520|1 1 2359300 1 106|memmove(yytext+yyleng+1, yytext+yyleng,
520|1 1 2359300 1 107|yytext[yyleng] = 0;
520|1 1 2359300 1 108|inspect journal to ensure that yytext is declared as a po
520|1 1 2359300 1 109| <LC> inter to type char
220|1 1 102 11:07:59|INSPECTReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We agree this is a test suite deficiency in the test
suite version(s) listed.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 0870
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority