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


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

Reply via email to