diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2004-04-22 21:19:33 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2004-04-22 21:19:33 +0000 |
| commit | 4f7956c206501691ad8e1e27dc959fd13e68aee4 (patch) | |
| tree | ebfc62406e67c6a12f32f4e35dabbdf9a58bb908 | |
| parent | 6cfcc6ccde2e45bb3f3d5ca13a2d63ab38975633 (diff) | |
| download | rockbox-4f7956c206501691ad8e1e27dc959fd13e68aee4.zip rockbox-4f7956c206501691ad8e1e27dc959fd13e68aee4.tar.gz rockbox-4f7956c206501691ad8e1e27dc959fd13e68aee4.tar.bz2 rockbox-4f7956c206501691ad8e1e27dc959fd13e68aee4.tar.xz | |
(v)snprintf() wrote past buffer end if string length was equal to buffer size
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4549 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/common/sprintf.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/firmware/common/sprintf.c b/firmware/common/sprintf.c index 00084ac..6542c9d 100644 --- a/firmware/common/sprintf.c +++ b/firmware/common/sprintf.c @@ -154,7 +154,7 @@ int snprintf(char *buf, size_t size, const char *fmt, ...) va_end(ap); /* make sure it ends with a trailing zero */ - pr.ptr[ok?0:-1]='\0'; + pr.ptr[(pr.bytes < pr.max) ? 0 : -1] = '\0'; return pr.bytes; } @@ -171,7 +171,7 @@ int vsnprintf(char *buf, int size, const char *fmt, va_list ap) ok = format(sprfunc, &pr, fmt, ap); /* make sure it ends with a trailing zero */ - pr.ptr[ok?0:-1]='\0'; + pr.ptr[(pr.bytes < pr.max) ? 0 : -1] = '\0'; return pr.bytes; } |