diff options
Diffstat (limited to 'fs/isofs/rock.c')
| -rw-r--r-- | fs/isofs/rock.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c index 204659a5f6db..735d7522a3a9 100644 --- a/fs/isofs/rock.c +++ b/fs/isofs/rock.c @@ -203,8 +203,6 @@ int get_rock_ridge_filename(struct iso_directory_record *de, int retnamlen = 0; int truncate = 0; int ret = 0; - char *p; - int len; if (!ISOFS_SB(inode->i_sb)->s_rock) return 0; @@ -269,17 +267,12 @@ repeat: rr->u.NM.flags); break; } - len = rr->len - 5; - if (retnamlen + len >= 254) { + if ((strlen(retname) + rr->len - 5) >= 254) { truncate = 1; break; } - p = memchr(rr->u.NM.name, '\0', len); - if (unlikely(p)) - len = p - rr->u.NM.name; - memcpy(retname + retnamlen, rr->u.NM.name, len); - retnamlen += len; - retname[retnamlen] = '\0'; + strncat(retname, rr->u.NM.name, rr->len - 5); + retnamlen += rr->len - 5; break; case SIG('R', 'E'): kfree(rs.buffer); |
