Commit Graph

32 Commits

Author SHA1 Message Date
Gleb Popov
4d6e5658e4 mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters.
PR:		231656
Approved by:	bapt
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D22289
2020-01-03 12:54:14 +00:00
Brooks Davis
ccbbd187b1 Fix a stack overflow in mount_smbfs when hostname is too long.
The local hostname was blindly copied into the to the nn_name array.
When the hostname exceeded 16 bytes, it would overflow.  Truncate the
hostname to 15 bytes plus a 0 terminator which is the "workstation name"
suffix.

Use defensive strlcpy() when filling nn_name in all cases.

PR:		228354
Reported by:	donald.buchholz@intel.com
Reviewed by:	jpaetzel,  ian (prior version)
Discussed with:	Security Officer (gtetlow)
MFC after:	3 days
Security:	Stack overflow with the hostname.
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D15936
2018-06-25 16:42:49 +00:00
Josh Paetzel
f56de56355 Fix SMBFS when saved passwords are greater than 18 characters
PR:	132302
Submitted by:	dhorn2000@gmail.com guru@unixarea.de
MFC after:	1 week
2017-06-08 00:48:26 +00:00
Ian Lepore
69ba629255 Avoid unaligned memory accesses when encoding netbios names in libsmb.
The current code for encoding a netbios name converts each byte to a 16-bit
value and stores the result by casting a char* to u_short*, resulting in
alignment faults on strict-alignment platforms.

This change reimplements the encoding routine using only byte accesses to
memory. There is no particular reason to work with 16-bit values just
because the encoding process creates two bytes of output for every byte of
input. Working a byte at at time also avoids endian problems for big-endian
platforms.

PR:		180438
PR:		189415
Differential Revision:	https://reviews.freebsd.org/D4622
2015-12-21 17:17:00 +00:00
Tijl Coosemans
1243a98e38 Remove the const qualifier from iconv(3) to comply with POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv.html

Adjust all code that calls iconv.

PR:		199099
Exp-run by:	antoine
MFC after:	2 weeks
2015-04-15 09:09:20 +00:00
Edward Tomasz Napierala
0dcfb96fbc Make it possible to use empty user name ("-U ''") for mount_smbfs(8).
It's just like "-U guest", except that it actually works, at least
with Samba 4, which seems to return authentication failure for "-U guest".

MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2014-09-08 11:01:57 +00:00
Gleb Smirnoff
ce102ac2ae Just disable recoding support in libsmb if built WITHOUT_ICONV. 2013-11-12 15:09:28 +00:00
Gleb Smirnoff
096013098a Use system libiconv, instead of trying to dlopen() it.
PR:		183153
Submitted by:	Dominic Fandrey <kamikaze bsdforen.de>
2013-11-09 14:48:50 +00:00
Davide Italiano
92a4d9bcc8 Completely rewrite the interface to smbdev switching from dev_clone
to cdevpriv(9). This commit changes the semantic of mount_smbfs
in userland as well, which now passes file descriptor in order to
to mount a specific filesystem istance.

Reviewed by:	attilio, ed
Tested by:	martymac
2013-05-04 14:03:18 +00:00
Robert Watson
6966d7767a When encoding an smb name, truncate one byte earlier in order than we did
previously in order to ensure it fit properly in the bufer when encoded.
This prevents a debugging printf from firing if a source or destination
host name for an smb mount exceeds 15 characters.

MFC after:	3 days
Obtained from:	Apple, Inc.
2008-11-02 19:48:15 +00:00
Boris Popov
ef29b0f6a1 Allow user to override default port numbers used by communication
protocols.  This is very useful for tunneled SMB connections.

MFC after:	4 weeks
2005-10-02 08:32:49 +00:00
R. Imura
4d79445aaf Remove macros
htole{s,l,q}, letoh{s,l,q},  htobe{s,l,q}, betoh{s,l,q}
and replace it with more standard byteorder macros in our system.
2005-09-19 08:07:18 +00:00
R. Imura
f373a82454 - Fix checking range of strings of struct iconv_add_in in libsmb and libkiconv,
- Add checking range of strings to iconv_sysctl_add().

Submitted by:	Rudolf Cejka
2005-08-24 12:38:26 +00:00
R. Imura
19434a77d6 Tell nls_setlocale() the very locale name from command line option,
rather than using optarg variable which would be allways NULL.
2005-08-07 08:46:56 +00:00
R. Imura
f0a446ea10 Correct argument order of kiconv_add_xlat16_cspairs().
Security:
2005-07-29 14:56:16 +00:00
Takanori Watanabe
4ebd3ea1f6 Make smbfs capable to use 16bit char set in filenames.
PR:78110
2005-05-04 15:05:46 +00:00
David E. O'Brien
1ac62e0b31 + Get prototypes for libc functions.
+ Use the correct printf format for size_t.
2004-10-19 17:44:31 +00:00
David E. O'Brien
caef65b837 Size matters. Correctly use a size_t so 64-bit hosts can mount SMB FS's
when using character set conversions.
Also include POSIX <string.h> vs. BSD <strings.h> now that we've broken
traditional BSD behavior [and compatibility with our BSD brethren].

PR:		72445
Submitted by:	Vladimir Nechitailo <nechit@lpi.ru>
Patch by:	Stasys Smailys <ssmailys@komvista.lt>
2004-10-19 17:39:15 +00:00
Alexander Kabaev
2cc37f2ca4 Do not use casts as lvalues. 2004-07-28 05:33:58 +00:00
Lukas Ertl
7d475e356f Fine-tune the last change even more and use the return value as error
indicator, as it is expected.

Spotted by: Christoph Mallon <christoph.mallon@gmx.de>
2004-06-19 19:03:01 +00:00
Lukas Ertl
8c0c5d04b0 Don't return NULL when the function is defined to return an integer.
OK'ed by: tjr
2004-06-19 10:09:44 +00:00
Tim J. Robbins
8861f1dd53 Merge from NetBSD rev. 1.3 (drochner): Use getifaddrs(3) instead of
SIOCGIFCONF.
2004-02-26 08:49:19 +00:00
Tim J. Robbins
8299402aca Merge from NetBSD rev. 1.2 (drochner): Do the address calculations inside
the data delivered by SIOCGIFCONF correctly (this isn't a plain array!),
and sort the checks a bit to avoid duplicates in the interface list.
2004-01-28 05:55:13 +00:00
Tim J. Robbins
5ec3441dd2 Fix some off-by-one errors dealing with limits of server names,
usernames, workgroup names and passwords. We can now connect to
servers with 15-character NetBIOS names. (Some versions of Windows
use semi-random 15-char names by default.)

PR:		46902
2003-07-27 11:41:38 +00:00
Peter Wemm
db75019614 Fixes for 64 bit cleanliness. The length arg to sysctl is a pointer to
size_t not int.

Reviewed by:	bp
2003-07-26 04:03:18 +00:00
Peter Wemm
26c4b7deaa Use #include <string.h> rather than <strings.h> so that the strdup()
prototype gets brought into scope.  This is a big deal for 64 bit
systems where the default return value of 'int' is != pointer.

Reviewed by:	bp
2003-07-26 04:02:22 +00:00
Tim J. Robbins
81b431dba3 Fix a typo in the -O parsing code that caused a crash when the -O option
is used without supplying "sowner:sgroup".

Obtained from:	NetBSD (jdolecek)
PR:		37171
2003-04-12 12:11:14 +00:00
Boris Popov
b4bd78b0cf Import smbfs 1.4.5. This release intended to fix problem with iconv
library.

MFC after:	1 week
2002-07-22 09:50:09 +00:00
Sheldon Hearn
34ffbc80d6 Import smbfs-1.4.4. 2002-04-22 16:15:20 +00:00
Sheldon Hearn
8d4076f081 Import smbfs-1.4.3. 2001-12-26 15:35:10 +00:00
Sheldon Hearn
df3342d686 Import smbfs-1.4.2. 2001-12-20 16:16:25 +00:00
Sheldon Hearn
f1b9d12761 Import smbfs-1.4.1.
This is Boris Popov's SMB/CIFS file system implementation for FreeBSD.

Obtained from:	Boris Popov via ftp://ftp.butya.kz/pub/smbfs/
2001-12-14 11:06:03 +00:00