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 --]
next 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.