From 0e0ba6176880cb53f49b5f9b45a69d7333caf4ff Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 13 Mar 2013 12:11:13 +0100 Subject: [PATCH] --- yaml --- r: 371707 b: refs/heads/master c: 0bc0ec903c45163f1263d9936f8a218fe9d3a29e h: refs/heads/master i: 371705: 3d743a8c2d427184ca149883e8523285be4b32fd 371703: 61a1ca6f328b7d66f0bd0dfb6367fb177899f6a1 v: v3 --- [refs] | 2 +- trunk/sound/core/info.c | 21 ++++++++------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index 859e3d46225a..dd7205fab3bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d861ac23812428deae17de2038234b79818b964 +refs/heads/master: 0bc0ec903c45163f1263d9936f8a218fe9d3a29e diff --git a/trunk/sound/core/info.c b/trunk/sound/core/info.c index 58e97b35cceb..c9042b4d3695 100644 --- a/trunk/sound/core/info.c +++ b/trunk/sound/core/info.c @@ -700,26 +700,21 @@ int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len) { int c = -1; + if (snd_BUG_ON(!buffer || !buffer->buffer)) + return 1; if (len <= 0 || buffer->stop || buffer->error) return 1; - while (--len > 0) { + while (!buffer->stop) { c = buffer->buffer[buffer->curr++]; - if (c == '\n') { - if (buffer->curr >= buffer->size) - buffer->stop = 1; - break; - } - *line++ = c; - if (buffer->curr >= buffer->size) { + if (buffer->curr >= buffer->size) buffer->stop = 1; + if (c == '\n') break; + if (len) { + len--; + *line++ = c; } } - while (c != '\n' && !buffer->stop) { - c = buffer->buffer[buffer->curr++]; - if (buffer->curr >= buffer->size) - buffer->stop = 1; - } *line = '\0'; return 0; }