Attached is the patch against ltp cvs version.On Tue, 14 Apr 2009 18:44:45 +0800, Subrata Modak <[email protected]> wrote:
On Tue, 2009-04-14 at 08:54 +0800, Guo Hongruan wrote:see attachment for the patch.I think you need to resend this based on the latest CVS. See the failures in applying the patch: patching file testcases/kernel/syscalls/mount/mount02.c Hunk #1 FAILED at 414. 1 out of 1 hunk FAILED -- saving rejects to file testcases/kernel/syscalls/mount/mount02.c.rej patching file testcases/kernel/syscalls/mount/mount03.c Hunk #1 FAILED at 170. Hunk #2 FAILED at 393. Hunk #3 FAILED at 410. Hunk #4 FAILED at 434. 4 out of 4 hunks FAILED -- saving rejects to file testcases/kernel/syscalls/mount/mount03.c.rej Regards-- SubrataOn Mon, 13 Apr 2009 21:06:25 +0800, Subrata Modak <[email protected]> wrote: > Guo, > > On Mon, 2009-04-13 at 10:57 +0800, Guo Hongruan wrote: >> Ok, I will > > I am hoping that you will resend a complete set for both mount02.c and> mount03.c with Caiś comments. Post Caiś acknowledgement, i will checkin.> > Regards-- > Subrata > >>>> On Mon, 13 Apr 2009 06:56:42 +0800, CAI Qian <[email protected]> wrote:>> >> > From: "Guo Hongruan" <[email protected]> >> > Subject: Re: [LTP] patch for mount02.c and mount03.c bugs(maybe) >> > Date: Sun, 12 Apr 2009 11:00:48 +0800 >> > >> >> Hi, Qian>> >> The LTP I used is LTP-20090131. Maybe mount03.c has changed since>> >> then. For mount03.c, it does not work on my site. >> >> >> >> Let's support we execute mount03 using the following command: >> >> >> >> mount03 -D /dev/hda2 -T ext2 >> >> >> >> look at the following code in mount03.c >> >> >> >> before applying the patch >> >> 172 if (Tflag) {>> >> /*the space using to store Fstype is strlen("ext2")==4, the return>> >> value >> >> of strlen does not include >> >> the terminating `\0' character */ >> >> 173 Fstype = (char *) malloc(strlen(fstype)); >> >> 174 if (Fstype == NULL) { >> >> 175 tst_brkm(TBROK, NULL, "malloc failed to alloc %d errno ">> >> 176 " %d ", strlen(fstype), errno);>> >> 177 }>> >> /*the Fstype context is "ext2", Note that, it is without the '\0'>> >> terminating character, >> >> so when printf("%s", Fstype), the content is undetermined*/ >> >> 178 strncpy(Fstype, fstype, strlen(fstype)); >> >> 179 } else {>> >> 180 Fstype = (char *) malloc(strlen(DEFAULT_FSTYPE));>> >> 181 if (Fstype == NULL) { >> >> 182 tst_brkm(TBROK, NULL, "malloc failed to alloc %d errno ">> >> 183 " %d ", strlen(fstype), errno);>> >> 184 } >> > >> > Yes, you are right. Can you also update the above error messages -- >> line>> > 175 and 182 (strlen(fstype) is totally wrong here) to have the correct>> > number of bytes? >> > >> > Thanks, >> > CAI Qian >> > >> >> 185 strncpy(Fstype, DEFAULT_FSTYPE, strlen(DEFAULT_FSTYPE)); >> >> 186 } >> >> >> >> after applying the patch. >> >> 172 if (Tflag) { >> >> /*We must allocate enough space to store the whole string >> including >> >> '\0' >> >> terminating character*/ >> >> 173 Fstype = (char *) malloc(strlen(fstype)+1); >> >> 174 if (Fstype == NULL) { >> >> 175 tst_brkm(TBROK, NULL, "malloc failed to alloc %d errno ">> >> 176 " %d ", strlen(fstype), errno);>> >> 177 }>> >> /*memset ensures the terminating character exist for any cases.*/>> >> 178 memset(Fstype, 0, strlen(fstype)+1); >> >> 179 strncpy(Fstype, fstype, strlen(fstype)); >> >> 180 } else { >> >> 181 Fstype = (char *) >> malloc(strlen(DEFAULT_FSTYPE)+1); >> >> 182 if (Fstype == NULL) { >> >> 183 tst_brkm(TBROK, NULL, "malloc failed to alloc %d errno ">> >> 184 " %d ", strlen(fstype), errno);>> >> 185 } >> >> 186 memset(Fstype, 0, strlen(DEFAULT_FSTYPE)+1); >> >> 187 strncpy(Fstype, DEFAULT_FSTYPE, strlen(DEFAULT_FSTYPE)); >> >> 188 } >> >> >> >> >> >> On Sat, 11 Apr 2009 15:55:36 +0800, CAI Qian <[email protected]> >> wrote: >> >> >> >>> >> >>> Hi, >> >>>>> >>> --- On Thu, 4/9/09, Guo Hongruan <[email protected]> wrote:>> >>> >> >>>> From: Guo Hongruan <[email protected]> >> >>>> Subject: [LTP] patch for mount02.c and mount03.c bugs(maybe) >> >>>> To: [email protected] >> >>>> Date: Thursday, April 9, 2009, 11:41 AM >> >>>> Hi, Guys, >> >>>> I think I found a bug of mount02.c and >> >>>> mount03.c which can not validate >> >>>> mount system call correctly. I did the following change, on >> >>>> my sites, it >> >>>> works OK. Here is the patch, hope it is useful. >> >>>> >> >>>> Running these testcases manually can >> >>>> reproduce this bug: >> >>>> mount02 -D /dev/hda2 -T ext2 >> >>>> mount03 -D /dev/hda2 -T ext2 >> >>>> >> >>> >> >>> I can reproduce the problem with mount02, and confirm the patch >> works. >> >>> However, mount03 does not fail for me without the patch. >> >>> >> >>> # # ./mount03 -D /dev/sdb1 -T ext2 >> >>> mount03 1 PASS : mount(2) Passed for rwflag MS_RDONLY - mount >> read-only >> >>> mount03 2 PASS : mount(2) Passed for rwflag MS_NODEV - disallow >> access >> >>> to device special files >> >>> mount03 3 PASS : mount(2) Passed for rwflag MS_NOEXEC - disallow >> >>> program >> >>> execution>> >>> mount03 4 PASS : mount(2) Passed for rwflag MS_SYNCHRONOUS - writes>> are >> >>> synced at once >> >>> mount03 5 PASS : mount(2) Passed for rwflag MS_REMOUNT - alter >> flags of >> >>> a mounted FS>> >>> mount03 6 PASS : mount(2) Passed for rwflag MS_NOSUID - ignore suid>> and >> >>> sgid bits >> >>>>> >>> Can you describe a little bit about the problem you were facing with>> >>> mount03? >> >>> >> >>> CAI Qian >> >>> >> >>>> Index: testcases/kernel/syscalls/mount/mount02.c>> >>>> ===================================================================>> >>>> --- >> >>>> testcases/kernel/syscalls/mount/mount02.c (revision >> >>>> 297) >> >>>> +++ >> >>>> testcases/kernel/syscalls/mount/mount02.c (working >> >>>> copy) >> >>>> @@ -414,8 +414,8 @@ >> >>>> >> >>>> if (Tflag) { >> >>>> >> >>>> /* Avoid buffer >> >>>> overflow */ >> >>>> >> >>>> strncpy(Type, >> >>>> fstype, >> >>>> - >> >>>> >> >>>> (FSTYPE_LEN < strlen(fstype)) ? >> >>>> FSTYPE_LEN >> >>>> : >> >>>> - >> >>>> >> >>>> strlen(fstype)); >> >>>> + >> >>>> >> >>>> (FSTYPE_LEN < strlen(fstype)+1) ? >> >>>> >> >>>> FSTYPE_LEN : >> >>>> + >> >>>> >> >>>> strlen(fstype)+1); >> >>>> >> >>>> } else { >> >>>> >> >>>> strcpy(Type, >> >>>> "ext2"); >> >>>> >> >>>> } >> >>>> >> >>>> >> >>>> Index: mount03.c>> >>>> ===================================================================>> >>>> --- mount03.c (revision 297) >> >>>> +++ mount03.c (working copy) >> >>>> @@ -170,18 +170,20 @@ >> >>>> } >> >>>> >> >>>> if (Tflag) { >> >>>> - Fstype = (char *) >> >>>> malloc(strlen(fstype)); >> >>>> + Fstype = (char *) >> >>>> malloc(strlen(fstype)+1); >> >>>> if (Fstype == >> >>>> NULL) { >> >>>> >> >>>> tst_brkm(TBROK, NULL, "malloc failed to >> >>>> alloc %d errno " >> >>>> >> >>>> " %d ", >> >>>> strlen(fstype), errno); >> >>>> } >> >>>> + memset(Fstype, 0, >> >>>> strlen(fstype)+1); >> >>>> >> >>>> strncpy(Fstype, fstype, strlen(fstype)); >> >>>> } else { >> >>>> - Fstype = (char *) >> >>>> malloc(strlen(DEFAULT_FSTYPE)); >> >>>> + Fstype = (char *) >> >>>> malloc(strlen(DEFAULT_FSTYPE)+1); >> >>>> if (Fstype == >> >>>> NULL) { >> >>>> >> >>>> tst_brkm(TBROK, NULL, "malloc failed to >> >>>> alloc %d errno " >> >>>> >> >>>> " %d ", >> >>>> strlen(fstype), errno); >> >>>> } >> >>>> + memset(Fstype, 0, >> >>>> strlen(DEFAULT_FSTYPE)+1); >> >>>> >> >>>> strncpy(Fstype, DEFAULT_FSTYPE, strlen(DEFAULT_FSTYPE)); >> >>>> } >> >>>> >> >>>> @@ -408,6 +410,7 @@ >> >>>> >> >>>> >> >>>> strerror(TEST_ERRNO)); >> >>>> >> >>>> } >> >>>> >> >>>> execve(file, NULL, >> >>>> NULL); >> >>>> + >> >>>> exit(-127); >> >>>> >> >>>> /* NOT REACHEAD */ >> >>>> >> >>>> } else { >> >>>> >> >>>> waitpid(pid, >> >>>> &status, 0); >> >>>> >> >>>> -- >> >>>> Guo Hongruan, Embedded Linux Consultant >> >>>> Mobile: +86-0-13484056007 >> >>>> Skype: camelguo >> >>>> http://www.gulessoft.com >> >>>> >> >>>> >> >>>> ------------------------------------------------------------------------------>> >>>> This SF.net email is sponsored by: >> >>>> High Quality Requirements in a Collaborative Environment. >> >>>> Download a free trial of Rational Requirements Composer >> >>>> Now! >> >>>> http://p.sf.net/sfu/www-ibm-com >> >>>> _______________________________________________ >> >>>> Ltp-list mailing list >> >>>> [email protected] >> >>>> https://lists.sourceforge.net/lists/listinfo/ltp-list >> >>>> >> >> >> >> >> >> >> >> -- >> >> Guo Hongruan, Embedded Linux Consultant >> >> Mobile: +86-0-13484056007 >> >> Skype: camelguo >> >> http://www.gulessoft.com >> >> >> > -- Guo Hongruan, Embedded Linux Consultant Mobile: +86-0-13484056007 Skype: camelguo http://www.gulessoft.com
-- Guo Hongruan, Embedded Linux Consultant Mobile: +86-0-13484056007 Skype: camelguo http://www.gulessoft.com
mount-strlen.diff
Description: Binary data
------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com
_______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
