-rw-r--r-- | noncore/apps/opie-reader/chm_lib.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/noncore/apps/opie-reader/chm_lib.c b/noncore/apps/opie-reader/chm_lib.c index ecf8278..7acd1d2 100644 --- a/noncore/apps/opie-reader/chm_lib.c +++ b/noncore/apps/opie-reader/chm_lib.c | |||
@@ -1595,17 +1595,17 @@ int chm_enumerate_dir(struct chmFile *h, | |||
1595 | 1595 | ||
1596 | /* the current ui */ | 1596 | /* the current ui */ |
1597 | struct chmUnitInfo ui; | 1597 | struct chmUnitInfo ui; |
1598 | int flag; | 1598 | int flag; |
1599 | 1599 | ||
1600 | /* the length of the prefix */ | 1600 | /* the length of the prefix */ |
1601 | char prefixRectified[CHM_MAX_PATHLEN+1]; | 1601 | char prefixRectified[CHM_MAX_PATHLEN+1]; |
1602 | int prefixLen; | 1602 | int prefixLen; |
1603 | char lastPath[CHM_MAX_PATHLEN]; | 1603 | char lastPath[CHM_MAX_PATHLEN+1]; |
1604 | int lastPathLen; | 1604 | int lastPathLen; |
1605 | 1605 | ||
1606 | /* starting page */ | 1606 | /* starting page */ |
1607 | curPage = h->index_head; | 1607 | curPage = h->index_head; |
1608 | 1608 | ||
1609 | /* initialize pathname state */ | 1609 | /* initialize pathname state */ |
1610 | strncpy(prefixRectified, prefix, CHM_MAX_PATHLEN); | 1610 | strncpy(prefixRectified, prefix, CHM_MAX_PATHLEN); |
1611 | prefixLen = strlen(prefixRectified); | 1611 | prefixLen = strlen(prefixRectified); |
@@ -1665,17 +1665,18 @@ int chm_enumerate_dir(struct chmFile *h, | |||
1665 | } | 1665 | } |
1666 | 1666 | ||
1667 | /* check if we should include this path */ | 1667 | /* check if we should include this path */ |
1668 | if (lastPathLen != -1) | 1668 | if (lastPathLen != -1) |
1669 | { | 1669 | { |
1670 | if (strncmp(ui.path, lastPath, lastPathLen) == 0) | 1670 | if (strncmp(ui.path, lastPath, lastPathLen) == 0) |
1671 | continue; | 1671 | continue; |
1672 | } | 1672 | } |
1673 | strcpy(lastPath, ui.path); | 1673 | strncpy(lastPath, ui.path, CHM_MAX_PATHLEN); |
1674 | lastPath[CHM_MAX_PATHLEN] = '\0'; | ||
1674 | lastPathLen = strlen(lastPath); | 1675 | lastPathLen = strlen(lastPath); |
1675 | 1676 | ||
1676 | /* check for DIRS */ | 1677 | /* check for DIRS */ |
1677 | if (ui.length == 0 && !(what & CHM_ENUMERATE_DIRS)) | 1678 | if (ui.length == 0 && !(what & CHM_ENUMERATE_DIRS)) |
1678 | continue; | 1679 | continue; |
1679 | 1680 | ||
1680 | /* check for FILES */ | 1681 | /* check for FILES */ |
1681 | if (ui.length != 0 && !(what & CHM_ENUMERATE_FILES)) | 1682 | if (ui.length != 0 && !(what & CHM_ENUMERATE_FILES)) |