diff options
author | Alexey Yakovenko <wakeroid@gmail.com> | 2009-12-16 23:00:55 +0100 |
---|---|---|
committer | Alexey Yakovenko <wakeroid@gmail.com> | 2009-12-16 23:00:55 +0100 |
commit | 4a7c7b514ed56091382a6a4eac91220e7571cae7 (patch) | |
tree | 4abe9771036bfe592faeb3016abbc7c39379827c | |
parent | 12ddfb5d72aad34d602f1e841b301e6fac84a0fc (diff) |
fixed possible buffer overflow in pl_insert_dir
-rw-r--r-- | playlist.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -642,10 +642,8 @@ pl_insert_dir (playItem_t *after, const char *dirname, int *pabort, int (*cb)(pl // no hidden files if (namelist[i]->d_name[0] != '.') { - char fullname[1024]; - strcpy (fullname, dirname); - strncat (fullname, "/", 1024); - strncat (fullname, namelist[i]->d_name, 1024); + char fullname[PATH_MAX]; + snprintf (fullname, sizeof (fullname), "%s/%s", dirname, namelist[i]->d_name); playItem_t *inserted = pl_insert_dir (after, fullname, pabort, cb, user_data); if (!inserted) { inserted = pl_insert_file (after, fullname, pabort, cb, user_data); |