summaryrefslogtreecommitdiff
path: root/debian/patches/ftpfs_fix.patch
blob: db5be65a5244759da66d3ee9a5e8c4507ce7d67f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2005-07-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* ihash.c (add_one): Correct cast.

2005-07-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* node.c (ftpfs_create_node): Add check for result of
	hurd_ihash_add(), correct addition of dir entry.

Index: libihash/ihash.c
===================================================================
RCS file: /cvsroot/hurd/hurd/libihash/ihash.c,v
retrieving revision 1.9
diff -u -u -p -r1.9 ihash.c
--- libihash/ihash.c	2 Apr 2004 17:01:03 -0000	1.9
+++ libihash/ihash.c	30 Jul 2005 01:38:27 -0000
@@ -329,7 +329,7 @@ add_one (hurd_ihash_t ht, hurd_ihash_key
       ht->items[first_free].key = key;
 
       if (ht->locp_offset != HURD_IHASH_NO_LOCP)
-	*((hurd_ihash_locp_t) (((char *) value) + ht->locp_offset))
+	*((hurd_ihash_locp_t *) (((char *) value) + ht->locp_offset))
 	  = &ht->items[first_free].value;
 
       return 1;

Index: ftpfs/node.c
===================================================================
RCS file: /cvsroot/hurd/hurd/ftpfs/node.c,v
retrieving revision 1.2
diff -u -p -r1.2 node.c
--- ftpfs/node.c	1 Mar 2004 09:58:44 -0000	1.2
+++ ftpfs/node.c	30 Jul 2005 01:38:07 -0000
@@ -39,6 +39,7 @@ ftpfs_create_node (struct ftpfs_dir_entr
 {
   struct node *new;
   struct netnode *nn = malloc (sizeof (struct netnode));
+  error_t err;
 
   if (! nn)
     return ENOMEM;
@@ -61,9 +62,16 @@ ftpfs_create_node (struct ftpfs_dir_entr
 		ftpfs_maptime);
 
   spin_lock (&nn->fs->inode_mappings_lock);
-  hurd_ihash_add (&nn->fs->inode_mappings, e->stat.st_ino, new);
+  err = hurd_ihash_add (&nn->fs->inode_mappings, e->stat.st_ino, e);
   spin_unlock (&nn->fs->inode_mappings_lock);
 
+  if (err)
+    {
+      free(nn);
+      free(new);
+      return err;
+    }
+
   e->node = new;
   *node = new;