public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
From: "Américo Wang" <xiyou.wangcong@gmail.com>
To: Mike Frysinger <vapier@gentoo.org>
Cc: linux-kbuild@vger.kernel.org,
	Roman Zippel <zippel@linux-m68k.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kconfig: fix warnings in fgets/fwrite usage
Date: Tue, 17 Aug 2010 13:46:40 +0800	[thread overview]
Message-ID: <20100817054640.GD5095@cr0.nay.redhat.com> (raw)
In-Reply-To: <1281592579-343-1-git-send-email-vapier@gentoo.org>

On Thu, Aug 12, 2010 at 01:56:19AM -0400, Mike Frysinger wrote:
>Add some helper functions that abort on failure, and change the fwrite
>and fget calls to use those.  This should kill off all the ugly gcc
>warnings that some distros emit about ignoring return values due to
>usage of warn_unused_result attributes.
>
>Signed-off-by: Mike Frysinger <vapier@gentoo.org>

Looks good to me,

Acked-by: WANG Cong <xiyou.wangcong@gmail.com>


>---
> scripts/kconfig/conf.c     |    4 ++--
> scripts/kconfig/confdata.c |    2 +-
> scripts/kconfig/expr.c     |    2 +-
> scripts/kconfig/lkc.h      |   24 ++++++++++++++++++++++++
> 4 files changed, 28 insertions(+), 4 deletions(-)
>
>diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
>index 274f271..b382a39 100644
>--- a/scripts/kconfig/conf.c
>+++ b/scripts/kconfig/conf.c
>@@ -108,7 +108,7 @@ static int conf_askvalue(struct symbol *sym, const char *def)
> 		check_stdin();
> 	case oldaskconfig:
> 		fflush(stdout);
>-		fgets(line, 128, stdin);
>+		xfgets(line, 128, stdin);
> 		return 1;
> 	default:
> 		break;
>@@ -306,7 +306,7 @@ static int conf_choice(struct menu *menu)
> 			check_stdin();
> 		case oldaskconfig:
> 			fflush(stdout);
>-			fgets(line, 128, stdin);
>+			xfgets(line, 128, stdin);
> 			strip(line);
> 			if (line[0] == '?') {
> 				print_help(menu);
>diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
>index f81f263..7d9f271 100644
>--- a/scripts/kconfig/confdata.c
>+++ b/scripts/kconfig/confdata.c
>@@ -412,7 +412,7 @@ static void conf_write_string(bool headerfile, const char *name,
> 	while (1) {
> 		l = strcspn(str, "\"\\");
> 		if (l) {
>-			fwrite(str, l, 1, out);
>+			xfwrite(str, l, 1, out);
> 			str += l;
> 		}
> 		if (!*str)
>diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c
>index 8f18e37..330e7c0 100644
>--- a/scripts/kconfig/expr.c
>+++ b/scripts/kconfig/expr.c
>@@ -1087,7 +1087,7 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
> 
> static void expr_print_file_helper(void *data, struct symbol *sym, const char *str)
> {
>-	fwrite(str, strlen(str), 1, data);
>+	xfwrite(str, strlen(str), 1, data);
> }
> 
> void expr_fprint(struct expr *e, FILE *out)
>diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
>index 76db065..a3bd66a 100644
>--- a/scripts/kconfig/lkc.h
>+++ b/scripts/kconfig/lkc.h
>@@ -169,6 +169,30 @@ static inline bool sym_has_value(struct symbol *sym)
> 	return sym->flags & SYMBOL_DEF_USER ? true : false;
> }
> 
>+#define internal_error(fmt, args...) \
>+do { \
>+	fprintf(stderr, "%s:%s:%i: %s: " fmt "\n", __FILE__, \
>+		__func__, __LINE__, _("internal error"), ## args); \
>+	exit(1); \
>+} while (0)
>+
>+#define xfwrite(ptr, size, nmemb, stream) \
>+({ \
>+	size_t _nmemb = (nmemb); \
>+	size_t ret = fwrite(ptr, size, _nmemb, stream); \
>+	if (ret != _nmemb) \
>+		internal_error("%s", _("fwrite() came up short")); \
>+	ret; \
>+})
>+
>+#define xfgets(s, size, stream) \
>+({ \
>+	char *ret = fgets(s, size, stream); \
>+	if (ret == NULL) \
>+		internal_error("%s", _("fgets() came up short")); \
>+	ret; \
>+})
>+
> #ifdef __cplusplus
> }
> #endif
>-- 
>1.7.2
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at  http://www.tux.org/lkml/

  reply	other threads:[~2010-08-17  5:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-12  5:56 [PATCH] kconfig: fix warnings in fgets/fwrite usage Mike Frysinger
2010-08-17  5:46 ` Américo Wang [this message]
2010-08-17  6:44   ` Michal Marek
2010-08-18  5:36     ` Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100817054640.GD5095@cr0.nay.redhat.com \
    --to=xiyou.wangcong@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vapier@gentoo.org \
    --cc=zippel@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox