X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fcore%2Finfo.c;h=31faffe01cb0fde0a4c73834cb69ad2c464954dc;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=de9879b3b38676c5b00e83f47b67d2e42df17f36;hpb=e3f6fb6212a7102bdb56ba38fa1e98fe72950475;p=linux-2.6.git diff --git a/sound/core/info.c b/sound/core/info.c index de9879b3b..31faffe01 100644 --- a/sound/core/info.c +++ b/sound/core/info.c @@ -92,19 +92,18 @@ static int snd_info_version_done(void); int snd_iprintf(snd_info_buffer_t * buffer, char *fmt,...) { va_list args; - int res; - char sbuffer[512]; + int len, res; if (buffer->stop || buffer->error) return 0; + len = buffer->len - buffer->size; va_start(args, fmt); - res = vscnprintf(sbuffer, sizeof(sbuffer), fmt, args); + res = vsnprintf(buffer->curr, len, fmt, args); va_end(args); - if (buffer->size + res >= buffer->len) { + if (res >= len) { buffer->stop = 1; return 0; } - strcpy(buffer->curr, sbuffer); buffer->curr += res; buffer->size += res; return res;