Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 42024 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.4.25-pre6/fs/ncpfs/dir.c (-31 / +40 lines)
Lines 266-273 Link Here
266
	struct ncp_server *server;
266
	struct ncp_server *server;
267
	struct inode *dir = dentry->d_parent->d_inode;
267
	struct inode *dir = dentry->d_parent->d_inode;
268
	struct ncp_entry_info finfo;
268
	struct ncp_entry_info finfo;
269
	int res, val = 0, len = dentry->d_name.len + 1;
269
	int res, val = 0, len;
270
	__u8 __name[len];
270
	__u8 __name[NCP_MAXPATHLEN + 1];
271
271
272
	if (!dentry->d_inode || !dir)
272
	if (!dentry->d_inode || !dir)
273
		goto finished;
273
		goto finished;
Lines 291-304 Link Here
291
		dentry->d_parent->d_name.name, dentry->d_name.name,
291
		dentry->d_parent->d_name.name, dentry->d_name.name,
292
		NCP_GET_AGE(dentry));
292
		NCP_GET_AGE(dentry));
293
293
294
	len = sizeof(__name);
294
	if (ncp_is_server_root(dir)) {
295
	if (ncp_is_server_root(dir)) {
295
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
296
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
296
						len-1, 1);
297
						dentry->d_name.len, 1);
297
		if (!res)
298
		if (!res)
298
			res = ncp_lookup_volume(server, __name, &(finfo.i));
299
			res = ncp_lookup_volume(server, __name, &(finfo.i));
299
	} else {
300
	} else {
300
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
301
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
301
						len-1, !ncp_preserve_case(dir));
302
						dentry->d_name.len, !ncp_preserve_case(dir));
302
		if (!res)
303
		if (!res)
303
			res = ncp_obtain_info(server, dir, __name, &(finfo.i));
304
			res = ncp_obtain_info(server, dir, __name, &(finfo.i));
304
	}
305
	}
Lines 548-556 Link Here
548
	int valid = 0;
549
	int valid = 0;
549
	int hashed = 0;
550
	int hashed = 0;
550
	ino_t ino = 0;
551
	ino_t ino = 0;
551
	__u8 __name[256];
552
	__u8 __name[NCP_MAXPATHLEN + 1];
552
553
553
	qname.len = 256;
554
	qname.len = sizeof(__name);
554
	if (ncp_vol2io(NCP_SERVER(inode), __name, &qname.len,
555
	if (ncp_vol2io(NCP_SERVER(inode), __name, &qname.len,
555
			entry->i.entryName, entry->i.nameLen,
556
			entry->i.entryName, entry->i.nameLen,
556
			!ncp_preserve_entry_case(inode, entry->i.NSCreator)))
557
			!ncp_preserve_entry_case(inode, entry->i.NSCreator)))
Lines 705-720 Link Here
705
{
706
{
706
	struct ncp_server* server = NCP_SBP(sb);
707
	struct ncp_server* server = NCP_SBP(sb);
707
	struct nw_info_struct i;
708
	struct nw_info_struct i;
708
	int result, len = strlen(server->m.mounted_vol) + 1;
709
	int result;
709
	__u8 __name[len];
710
710
711
	if (ncp_single_volume(server)) {
711
	if (ncp_single_volume(server)) {
712
		int len;
712
		struct dentry* dent;
713
		struct dentry* dent;
714
		__u8 __name[NCP_MAXPATHLEN + 1];
713
715
714
		result = -ENOENT;
716
		len = sizeof(__name);
715
		if (ncp_io2vol(server, __name, &len, server->m.mounted_vol,
717
		result = ncp_io2vol(server, __name, &len, server->m.mounted_vol,
716
								len-1, 1))
718
				    strlen(server->m.mounted_vol), 1);
719
		if (result)
717
			goto out;
720
			goto out;
721
		result = -ENOENT;
718
		if (ncp_lookup_volume(server, __name, &i)) {
722
		if (ncp_lookup_volume(server, __name, &i)) {
719
			PPRINTK("ncp_conn_logged_in: %s not found\n",
723
			PPRINTK("ncp_conn_logged_in: %s not found\n",
720
				server->m.mounted_vol);
724
				server->m.mounted_vol);
Lines 745-752 Link Here
745
	struct ncp_server *server = NCP_SERVER(dir);
749
	struct ncp_server *server = NCP_SERVER(dir);
746
	struct inode *inode = NULL;
750
	struct inode *inode = NULL;
747
	struct ncp_entry_info finfo;
751
	struct ncp_entry_info finfo;
748
	int error, res, len = dentry->d_name.len + 1;
752
	int error, res, len;
749
	__u8 __name[len];
753
	__u8 __name[NCP_MAXPATHLEN + 1];
750
754
751
	error = -EIO;
755
	error = -EIO;
752
	if (!ncp_conn_valid(server))
756
	if (!ncp_conn_valid(server))
Lines 755-768 Link Here
755
	PPRINTK("ncp_lookup: server lookup for %s/%s\n",
759
	PPRINTK("ncp_lookup: server lookup for %s/%s\n",
756
		dentry->d_parent->d_name.name, dentry->d_name.name);
760
		dentry->d_parent->d_name.name, dentry->d_name.name);
757
761
762
	len = sizeof(__name);
758
	if (ncp_is_server_root(dir)) {
763
	if (ncp_is_server_root(dir)) {
759
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
764
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
760
						len-1, 1);
765
				 dentry->d_name.len, 1);
761
		if (!res)
766
		if (!res)
762
			res = ncp_lookup_volume(server, __name, &(finfo.i));
767
			res = ncp_lookup_volume(server, __name, &(finfo.i));
763
	} else {
768
	} else {
764
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
769
		res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
765
						len-1, !ncp_preserve_case(dir));
770
				 dentry->d_name.len, !ncp_preserve_case(dir));
766
		if (!res)
771
		if (!res)
767
			res = ncp_obtain_info(server, dir, __name, &(finfo.i));
772
			res = ncp_obtain_info(server, dir, __name, &(finfo.i));
768
	}
773
	}
Lines 825-833 Link Here
825
{
830
{
826
	struct ncp_server *server = NCP_SERVER(dir);
831
	struct ncp_server *server = NCP_SERVER(dir);
827
	struct ncp_entry_info finfo;
832
	struct ncp_entry_info finfo;
828
	int error, result, len = dentry->d_name.len + 1;
833
	int error, result, len;
829
	int opmode;
834
	int opmode;
830
	__u8 __name[len];
835
	__u8 __name[NCP_MAXPATHLEN + 1];
831
	
836
	
832
	PPRINTK("ncp_create_new: creating %s/%s, mode=%x\n",
837
	PPRINTK("ncp_create_new: creating %s/%s, mode=%x\n",
833
		dentry->d_parent->d_name.name, dentry->d_name.name, mode);
838
		dentry->d_parent->d_name.name, dentry->d_name.name, mode);
Lines 836-843 Link Here
836
		goto out;
841
		goto out;
837
842
838
	ncp_age_dentry(server, dentry);
843
	ncp_age_dentry(server, dentry);
844
	len = sizeof(__name);
839
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
845
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
840
						len-1, !ncp_preserve_case(dir));
846
			   dentry->d_name.len, !ncp_preserve_case(dir));
841
	if (error)
847
	if (error)
842
		goto out;
848
		goto out;
843
849
Lines 880-887 Link Here
880
{
886
{
881
	struct ncp_entry_info finfo;
887
	struct ncp_entry_info finfo;
882
	struct ncp_server *server = NCP_SERVER(dir);
888
	struct ncp_server *server = NCP_SERVER(dir);
883
	int error, len = dentry->d_name.len + 1;
889
	int error, len;
884
	__u8 __name[len];
890
	__u8 __name[NCP_MAXPATHLEN + 1];
885
891
886
	DPRINTK("ncp_mkdir: making %s/%s\n",
892
	DPRINTK("ncp_mkdir: making %s/%s\n",
887
		dentry->d_parent->d_name.name, dentry->d_name.name);
893
		dentry->d_parent->d_name.name, dentry->d_name.name);
Lines 890-897 Link Here
890
		goto out;
896
		goto out;
891
897
892
	ncp_age_dentry(server, dentry);
898
	ncp_age_dentry(server, dentry);
899
	len = sizeof(__name);
893
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
900
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
894
						len-1, !ncp_preserve_case(dir));
901
			   dentry->d_name.len, !ncp_preserve_case(dir));
895
	if (error)
902
	if (error)
896
		goto out;
903
		goto out;
897
904
Lines 909-916 Link Here
909
static int ncp_rmdir(struct inode *dir, struct dentry *dentry)
916
static int ncp_rmdir(struct inode *dir, struct dentry *dentry)
910
{
917
{
911
	struct ncp_server *server = NCP_SERVER(dir);
918
	struct ncp_server *server = NCP_SERVER(dir);
912
	int error, result, len = dentry->d_name.len + 1;
919
	int error, result, len;
913
	__u8 __name[len];
920
	__u8 __name[NCP_MAXPATHLEN + 1];
914
921
915
	DPRINTK("ncp_rmdir: removing %s/%s\n",
922
	DPRINTK("ncp_rmdir: removing %s/%s\n",
916
		dentry->d_parent->d_name.name, dentry->d_name.name);
923
		dentry->d_parent->d_name.name, dentry->d_name.name);
Lines 923-930 Link Here
923
	if (!d_unhashed(dentry))
930
	if (!d_unhashed(dentry))
924
		goto out;
931
		goto out;
925
932
933
	len = sizeof(__name);
926
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
934
	error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
927
						len-1, !ncp_preserve_case(dir));
935
			   dentry->d_name.len, !ncp_preserve_case(dir));
928
	if (error)
936
	if (error)
929
		goto out;
937
		goto out;
930
938
Lines 1022-1030 Link Here
1022
{
1030
{
1023
	struct ncp_server *server = NCP_SERVER(old_dir);
1031
	struct ncp_server *server = NCP_SERVER(old_dir);
1024
	int error;
1032
	int error;
1025
	int old_len = old_dentry->d_name.len + 1;
1033
	int old_len, new_len;
1026
	int new_len = new_dentry->d_name.len + 1;
1034
	__u8 __old_name[NCP_MAXPATHLEN + 1], __new_name[NCP_MAXPATHLEN + 1];
1027
	__u8 __old_name[old_len], __new_name[new_len];
1028
1035
1029
	DPRINTK("ncp_rename: %s/%s to %s/%s\n",
1036
	DPRINTK("ncp_rename: %s/%s to %s/%s\n",
1030
		old_dentry->d_parent->d_name.name, old_dentry->d_name.name,
1037
		old_dentry->d_parent->d_name.name, old_dentry->d_name.name,
Lines 1037-1051 Link Here
1037
	ncp_age_dentry(server, old_dentry);
1044
	ncp_age_dentry(server, old_dentry);
1038
	ncp_age_dentry(server, new_dentry);
1045
	ncp_age_dentry(server, new_dentry);
1039
1046
1047
	old_len = sizeof(__old_name);
1040
	error = ncp_io2vol(server, __old_name, &old_len,
1048
	error = ncp_io2vol(server, __old_name, &old_len,
1041
					old_dentry->d_name.name, old_len-1,
1049
			   old_dentry->d_name.name, old_dentry->d_name.len,
1042
					!ncp_preserve_case(old_dir));
1050
			   !ncp_preserve_case(old_dir));
1043
	if (error)
1051
	if (error)
1044
		goto out;
1052
		goto out;
1045
1053
1054
	new_len = sizeof(__new_name);
1046
	error = ncp_io2vol(server, __new_name, &new_len,
1055
	error = ncp_io2vol(server, __new_name, &new_len,
1047
					new_dentry->d_name.name, new_len-1,
1056
			   new_dentry->d_name.name, new_dentry->d_name.len,
1048
					!ncp_preserve_case(new_dir));
1057
			   !ncp_preserve_case(new_dir));
1049
	if (error)
1058
	if (error)
1050
		goto out;
1059
		goto out;
1051
1060

Return to bug 42024