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-- Subrata > > On 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 ------------------------------------------------------------------------------ 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
