Patchwork mkfs.ubifs: eliminate compiler warnings

login
register
mail settings
Submitter Adrian Hunter
Date Feb. 12, 2009, 8:53 a.m.
Message ID <4993E37E.7070702@nokia.com>
Download mbox | patch
Permalink /patch/23006/
State Accepted
Commit 6bd4de4228044315d4271af58761792aef762ac9
Headers show

Comments

Mike Frysinger - Feb. 12, 2009, 8:48 a.m.
On Thu, Feb 12, 2009 at 03:53, Adrian Hunter wrote:
> --- a/mkfs.ubifs/mkfs.ubifs.c
> +++ b/mkfs.ubifs/mkfs.ubifs.c
> @@ -248,7 +248,8 @@ static int do_openat(int fd, const char *path, int flags)
>        ret = fchdir(fd);
>        if (ret != -1)
>                ret = open(path, flags);
> -       chdir(cwd);
> +       if (chdir(cwd) && !ret)
> +               ret = -1;
>        free(cwd);
>        return ret;
>  }

does gcc do the right thing and re-order this ?  or re-order it
yourself so the intent stays clear ...

>                case 'h':
>                case '?':
> -                       printf(helptext);
> +                       printf("%s", helptext);
>                        exit(0);

puts() would be less overhead ... just make sure helptext doesnt have
a trailing \n ...
-mike
Adrian Hunter - Feb. 12, 2009, 8:53 a.m.
The warnings were:

lpt.c: In function ‘create_lpt’:
lpt.c:552: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long long int’
mkfs.ubifs.c: In function ‘do_openat’:
mkfs.ubifs.c:251: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result
mkfs.ubifs.c: In function ‘get_options’:
mkfs.ubifs.c:542: warning: format not a string literal and no format arguments

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
---
 mkfs.ubifs/lpt.c        |    2 +-
 mkfs.ubifs/mkfs.ubifs.c |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

Patch

diff --git a/mkfs.ubifs/lpt.c b/mkfs.ubifs/lpt.c
index c8fb22c..f6d4352 100644
--- a/mkfs.ubifs/lpt.c
+++ b/mkfs.ubifs/lpt.c
@@ -549,7 +549,7 @@  int create_lpt(struct ubifs_info *c)
 	c->nhead_lnum = lnum;
 	c->nhead_offs = ALIGN(len, c->min_io_size);
 
-	dbg_msg(1, "lpt_sz:         %d", c->lpt_sz);
+	dbg_msg(1, "lpt_sz:         %lld", c->lpt_sz);
 	dbg_msg(1, "space_bits:     %d", c->space_bits);
 	dbg_msg(1, "lpt_lnum_bits:  %d", c->lpt_lnum_bits);
 	dbg_msg(1, "lpt_offs_bits:  %d", c->lpt_offs_bits);
diff --git a/mkfs.ubifs/mkfs.ubifs.c b/mkfs.ubifs/mkfs.ubifs.c
index 6c4e912..bedf8a7 100644
--- a/mkfs.ubifs/mkfs.ubifs.c
+++ b/mkfs.ubifs/mkfs.ubifs.c
@@ -248,7 +248,8 @@  static int do_openat(int fd, const char *path, int flags)
 	ret = fchdir(fd);
 	if (ret != -1)
 		ret = open(path, flags);
-	chdir(cwd);
+	if (chdir(cwd) && !ret)
+		ret = -1;
 	free(cwd);
 	return ret;
 }
@@ -539,7 +540,7 @@  static int get_options(int argc, char**argv)
 			break;
 		case 'h':
 		case '?':
-			printf(helptext);
+			printf("%s", helptext);
 			exit(0);
 		case 'v':
 			verbose = 1;