#ifndef lint
static const char rcsid[] =
- "$Id: dirs.c,v 1.25 2004/03/29 13:57:29 stelian Exp $";
+ "$Id: dirs.c,v 1.28 2004/05/25 10:39:30 stelian Exp $";
#endif /* not lint */
#include <config.h>
struct direct *dp;
long loc, i;
- if (cvtflag) {
+ if (cvtflag && !ufs2flag) {
eodp = (struct odirect *)&buf[size];
for (odp = (struct odirect *)buf; odp < eodp; odp++)
if (odp->d_ino != 0) {
i = DIRBLKSIZ - (loc & (DIRBLKSIZ - 1));
if ((dp->d_reclen & 0x3) != 0 ||
dp->d_reclen > i ||
- dp->d_reclen < DIRSIZ(0, dp) ||
- dp->d_namlen > MAXNAMLEN) {
+ dp->d_reclen < DIRSIZ(0, dp)
+#if MAXNAMLEN < 255
+ || dp->d_namlen > MAXNAMLEN
+#endif
+ ) {
Vprintf(stdout, "Mangled directory: ");
if ((dp->d_reclen & 0x3) != 0)
Vprintf(stdout,
Vprintf(stdout,
"reclen less than DIRSIZ (%d < %d) ",
dp->d_reclen, DIRSIZ(0, dp));
+#if MAXNAMLEN < 255
if (dp->d_namlen > MAXNAMLEN)
Vprintf(stdout,
"reclen name too big (%d > %d) ",
dp->d_namlen, MAXNAMLEN);
+#endif
Vprintf(stdout, "\n");
loc += i;
continue;
return;
loc -= base;
if (loc < 0)
- fprintf(stderr, "bad seek pointer to rst_seekdir %lld\n", loc);
+ fprintf(stderr, "bad seek pointer to rst_seekdir %lld\n", (long long int)loc);
(void) LSEEK(dirp->dd_fd, base + (loc & ~(DIRBLKSIZ - 1)), SEEK_SET);
dirp->dd_loc = loc & (DIRBLKSIZ - 1);
if (dirp->dd_loc != 0)