All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Spencer <maillist-alsa@barfooze.de>
To: alsa-devel@alsa-project.org
Subject: [PATCH] fix bug 5579: invalid long long format specifier
Date: Tue, 24 Apr 2012 12:58:48 +0200	[thread overview]
Message-ID: <4F968768.20102@barfooze.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 217 bytes --]

the attached patch fixes an invalid long long format specifier issue (%L 
was used by mistake, which is the long double specifier).
this lead to abort() on 64bit system, making some of the alsa-utils 
unusable.

--JS

[-- Attachment #2: 0001-fix-bug-5579-invalid-long-long-format-specifier.patch --]
[-- Type: text/x-patch, Size: 2271 bytes --]

>From 63fe3fa4765c423ef6904a4506e4ed74908ecfb6 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-alsa@barfooze.de>
Date: Tue, 24 Apr 2012 12:41:27 +0200
Subject: [PATCH] fix bug 5579: invalid long long format specifier

Per POSIX:

       L      Specifies that a following a, A, e, E, f, F, g, or G  conversion
              specifier applies to a long double argument.

L is only intended to be used with long doubles, not long long ints.

the proper way is to use "ll" instead.

Signed-off-by: John Spencer <maillist-alsa@barfooze.de>
---
 src/conf.c      |    6 +++---
 test/midiloop.c |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/conf.c b/src/conf.c
index 5b1b5a6..32446a2 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -496,7 +496,7 @@ static int safe_strtoll(const char *str, long long *val)
 	if (!*str)
 		return -EINVAL;
 	errno = 0;
-	if (sscanf(str, "%Li%n", &v, &endidx) < 1)
+	if (sscanf(str, "%lli%n", &v, &endidx) < 1)
 		return -EINVAL;
 	if (str[endidx])
 		return -EINVAL;
@@ -1378,7 +1378,7 @@ static int _snd_config_save_node_value(snd_config_t *n, snd_output_t *out,
 		snd_output_printf(out, "%ld", n->u.integer);
 		break;
 	case SND_CONFIG_TYPE_INTEGER64:
-		snd_output_printf(out, "%Ld", n->u.integer64);
+		snd_output_printf(out, "%lld", n->u.integer64);
 		break;
 	case SND_CONFIG_TYPE_REAL:
 		snd_output_printf(out, "%-16g", n->u.real);
@@ -2630,7 +2630,7 @@ int snd_config_get_ascii(const snd_config_t *config, char **ascii)
 		{
 			char res[32];
 			int err;
-			err = snprintf(res, sizeof(res), "%Li", config->u.integer64);
+			err = snprintf(res, sizeof(res), "%lli", config->u.integer64);
 			if (err < 0 || err == sizeof(res)) {
 				assert(0);
 				return -ENOMEM;
diff --git a/test/midiloop.c b/test/midiloop.c
index ee2e563..d6548b5 100644
--- a/test/midiloop.c
+++ b/test/midiloop.c
@@ -175,7 +175,7 @@ int main(int argc, char** argv)
 	printf("output.status.xruns = %zi\n", snd_rawmidi_status_get_xruns(ostat));
 
 	diff = timediff(end, start);
-	printf("Time diff: %Liusec (%Li bytes/sec)\n", diff, ((long long)opos * 1000000) / diff);
+	printf("Time diff: %lliusec (%lli bytes/sec)\n", diff, ((long long)opos * 1000000) / diff);
 
 	if (verbose) {
 		fprintf(stderr,"Closing\n");
-- 
1.7.3.4


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



             reply	other threads:[~2012-04-24 10:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-24 10:58 John Spencer [this message]
2012-04-24 13:39 ` [PATCH] fix bug 5579: invalid long long format specifier Takashi Iwai
2012-04-24 18:56 ` David Henningsson
2012-04-25 17:21   ` John Spencer

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=4F968768.20102@barfooze.de \
    --to=maillist-alsa@barfooze.de \
    --cc=alsa-devel@alsa-project.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.