- for (i = 0; (i < DEVICE_MAP_SIZE) && device_map[i].dev; i++)
- if (!strcmp(device_map[i].dev, dev))
- return device_map[i].mnt;
-
- if (i == DEVICE_MAP_SIZE)
- return NULL;
-
- device_map[i].dev = strdup(dev);
- device_map[i].mnt = join_paths(mount_base, dev);
- return device_map[i].mnt;
+ for (i = 0; i < mount_map_size; i++)
+ if (!strcmp(mount_map[i].dev, dev))
+ return mount_map[i].mnt;
+
+ /* no existing entry, create a new one */
+ i = mount_map_size++;
+ mount_map = talloc_realloc(NULL, mount_map,
+ struct mount_map, mount_map_size);
+
+ mount_map[i].dev = talloc_strdup(mount_map, dev);
+ mount_map[i].mnt = join_paths(mount_map, DEVICE_MOUNT_BASE, dev);
+ return mount_map[i].mnt;