summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-07-26 00:06:06 +0000
committerThomas Martitz <kugel@rockbox.org>2010-07-26 00:06:06 +0000
commitf69e995bdaad29a0faf8d44e9f4b7c591e7ee050 (patch)
tree6b0405d4b82bd0c290c55b6842cd881602726730
parenta3e6a865df7f40a01e38381881b29b0b16f6ca8c (diff)
downloadrockbox-f69e995bdaad29a0faf8d44e9f4b7c591e7ee050.tar.gz
rockbox-f69e995bdaad29a0faf8d44e9f4b7c591e7ee050.zip
Fix potential buffer overflow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27568 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/settings.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 938281f4c2..6f1fd7ad2e 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1211,13 +1211,13 @@ void set_file(const char* filename, char* setting, const int maxlen)
else
extlen = strlen(extptr);
- len = strlen(fptr) - extlen;
+ len = strlen(fptr) - extlen + 1;
/* error if filename isn't in ROCKBOX_DIR */
if (strncasecmp(ROCKBOX_DIR, filename, ROCKBOX_DIR_LEN) || (len > maxlen))
return;
- strlcpy(setting, fptr, len+1);
+ strlcpy(setting, fptr, len);
settings_save();
}