On Fri, 2009-08-28 at 11:38 +0530, Subrata Modak wrote:
> On Thu, 2009-08-27 at 17:29 +0200, Geert Uytterhoeven wrote: 
> > On Thu, 27 Aug 2009, Geert Uytterhoeven wrote:
> > > When the quotactl syscall fails, quotactl01 crashes with a segmentation 
> > > fault
> > > due to an incorrect printf()-style format.
> > 
> > This bug encouraged me to add annotations to the test helpers that take
> > printf()-style formats, cfr. the patch below.
> > 
> > It causes a massive amount of compiler warnings, most of them caused by
> > TEST_ERRNO being long. According to CVS history, both TEST_RETURN and
> > TEST_ERRNO have been changed from int to long to accomodate 64-bit 
> > platforms,
> > but to me the change of TEST_ERRNO looks bogus.
> > As errno is int according to C99, TEST_ERRNO should actually be int too, 
> > right? 
> > 
> > Note that there are also a few other cases where integers are used on 
> > pointer
> > type format specifiers. These will cause crashes when the code path is
> > executed.
> > 
> > >From 601578f79c05779acefe023fd499726d9fe4ce03 Mon Sep 17 00:00:00 2001
> > From: Geert Uytterhoeven <[email protected]>
> > Date: Thu, 27 Aug 2009 17:08:18 +0200
> > Subject: [PATCH] Annotate tst_*() helpers with __attribute__ ((format 
> > (printf, M, N)))
> > 
> > Signed-off-by: Geert Uytterhoeven <[email protected]>
> 
> Ok. Thanks.

Sorry. I need to revert this as it generates a huge set of warning for
all the tests compiled. It should not only get fixed at test.h, but also
in all tests that uses the tst_* family of functions, which obviously is
too big to fix.

Regards--
Subrata

> 
> Regards--
> Subrata
> 
> > ---
> >  include/test.h |   18 ++++++++++++------
> >  1 files changed, 12 insertions(+), 6 deletions(-)
> > 
> > diff --git a/include/test.h b/include/test.h
> > index 34ed5d2..03b0d46 100644
> > --- a/include/test.h
> > +++ b/include/test.h
> > @@ -186,12 +186,18 @@
> >   * Functions from lib/tst_res.c
> >   */
> >  const char *strttype(int ttype);
> > -void tst_res(int ttype, char *fname, char *arg_fmt, ...);
> > -void tst_resm(int ttype, char *arg_fmt, ...);
> > -void tst_brk(int ttype, char *fname, void (*func)(void), char *arg_fmt, 
> > ...);
> > -void tst_brkloop(int ttype, char *fname, void (*func)(void), char 
> > *arg_fmt, ...);
> > -void tst_brkm(int ttype, void (*func)(void), char *arg_fmt, ...);
> > -void tst_brkloopm(int ttype, void (*func)(void), char *arg_fmt, ...);
> > +void tst_res(int ttype, char *fname, char *arg_fmt, ...)
> > +   __attribute__ ((format (printf, 3, 4)));
> > +void tst_resm(int ttype, char *arg_fmt, ...)
> > +   __attribute__ ((format (printf, 2, 3)));
> > +void tst_brk(int ttype, char *fname, void (*func)(void), char *arg_fmt, 
> > ...)
> > +   __attribute__ ((format (printf, 4, 5)));
> > +void tst_brkloop(int ttype, char *fname, void (*func)(void), char 
> > *arg_fmt, ...)
> > +   __attribute__ ((format (printf, 4, 5)));
> > +void tst_brkm(int ttype, void (*func)(void), char *arg_fmt, ...)
> > +   __attribute__ ((format (printf, 3, 4)));
> > +void tst_brkloopm(int ttype, void (*func)(void), char *arg_fmt, ...)
> > +   __attribute__ ((format (printf, 3, 4)));
> >  void tst_require_root(void (*func)(void));
> >  int  tst_environ(void);
> >  void tst_exit(void) LTP_ATTRIBUTE_NORETURN;
> 
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to