summaryrefslogtreecommitdiffstats
path: root/contrib/smbfs
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-01-25 18:35:58 +0000
committeryongari <yongari@FreeBSD.org>2010-01-25 18:35:58 +0000
commit8a4c5a38b74afb016f212aed75fc162718267969 (patch)
tree3a1d7b42ceb1f5becb5351495515298f76fbfa6b /contrib/smbfs
parent7133fbf3b234a6ce945c663259c9513aa6a2abb6 (diff)
downloadFreeBSD-src-8a4c5a38b74afb016f212aed75fc162718267969.zip
FreeBSD-src-8a4c5a38b74afb016f212aed75fc162718267969.tar.gz
shi1_remark is in little endian format, convert it to host ordering.
Also remove upper 16bits which always seem to be 0xFFFF. We don't allocate more than 64KB buffer anyway. This change make smbutil work on sparc64. Reviewed by: marius, bp Approved by: bp
Diffstat (limited to 'contrib/smbfs')
-rw-r--r--contrib/smbfs/smbutil/view.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/contrib/smbfs/smbutil/view.c b/contrib/smbfs/smbutil/view.c
index 87f5e0c..1af0d9b 100644
--- a/contrib/smbfs/smbutil/view.c
+++ b/contrib/smbfs/smbutil/view.c
@@ -69,6 +69,7 @@ cmd_view(int argc, char *argv[])
struct smb_ctx sctx, *ctx = &sctx;
struct smb_share_info_1 *rpbuf, *ep;
char *cp;
+ u_int32_t remark;
u_int16_t type;
int error, opt, bufsize, i, entries, total;
@@ -117,11 +118,13 @@ cmd_view(int argc, char *argv[])
}
for (ep = rpbuf, i = 0; i < entries; i++, ep++) {
type = le16toh(ep->shi1_type);
+ remark = le32toh(ep->shi1_remark);
+ remark &= 0xFFFF;
- cp = (char*)rpbuf + ep->shi1_remark;
+ cp = (char*)rpbuf + remark;
printf("%-12s %-10s %s\n", ep->shi1_netname,
shtype[min(type, sizeof shtype / sizeof(char *) - 1)],
- ep->shi1_remark ? nls_str_toloc(cp, cp) : "");
+ remark ? nls_str_toloc(cp, cp) : "");
}
printf("\n%d shares listed from %d available\n", entries, total);
free(rpbuf);
OpenPOWER on IntegriCloud