Text   |  XML   |  ReML   |   Visible Warnings:

Uninitialized Variable  at mail-storage.c:225

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

convert_storage

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/convert/convert-storage.c)expand/collapse
Show more  
 394  int convert_storage(const char *source_data,
 395                      struct mail_namespace *dest_namespaces,
 396                      const struct convert_settings *set)
 397  {
 398          struct mail_user *user = dest_namespaces->user;
 399          struct mail_namespace *source_ns, *dest_inbox_ns;
 400          struct dotlock *dotlock;
 401          enum mail_storage_flags src_flags;
 402          enum file_lock_method lock_method;
 403          const char *home, *path, *error;
 404          int ret;
 405   
 406          i_assert(user->namespaces == dest_namespaces);
 407          source_ns = mail_namespaces_init_empty(user);
 408          user->namespaces = dest_namespaces;
 409   
 410          dest_inbox_ns = mail_namespace_find_inbox(dest_namespaces);
 411          src_flags = dest_inbox_ns->storage->flags;
 412          lock_method = dest_inbox_ns->storage->lock_method;
 413   
 414          src_flags |= MAIL_STORAGE_FLAG_NO_AUTOCREATE;
 415          if (mail_storage_create(source_ns, NULL, source_data,
 416[+]                                 src_flags, lock_method, &error) < 0) {
expand/collapse

mail_storage_create

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/mail-storage.c)expand/collapse
Show more  
 160  int mail_storage_create(struct mail_namespace *ns, const char *driver,
 161                          const char *data, enum mail_storage_flags flags,
 162                          enum file_lock_method lock_method,
 163                          const char **error_r)
 164  {
 165          struct mail_storage *storage_class, *storage = NULL;
 166          struct mail_storage *const *classes;
 167          const char *home, *value;
 168          unsigned int i, count;
 169   
 170          if (data == NULL)
 171                  data = "";
 172          else if (driver == NULL)
 173                  mail_storage_set_autodetection(&data, &driver, &flags);
 174   
 175          if (*data == '\0' && driver == NULL) {
 176                  /* use the first driver that works */
 177[+]                 classes = array_get(&storages, &count);
 178          } else if (driver == NULL) {
 179                  storage_class = mail_storage_autodetect(data, flags);
 180                  if (storage_class == NULL) {
 181                          *error_r = t_strdup_printf(
 182                                  "Ambiguous mail location setting, "
 183                                  "don't know what to do with it: %s "
 184                                  "(try prefixing it with mbox: or maildir:)",
 185                                  data);
 186                          return -1;
 187                  }
 188                  classes = &storage_class;
 189                  count = 1;
 190          } else {
 191                  storage_class = mail_storage_find_class(driver);
 192                  if (storage_class == NULL) {
 193                          *error_r = t_strdup_printf(
 194                                  "Unknown mail storage driver %s", driver);
 195                          return -1;
 196                  }
 197                  classes = &storage_class;
 198                  count = 1;
 199          }
 200   
 201          for (i = 0; i < count; i++) {
 202                  storage = classes[i]->v.alloc();
 203                  storage->flags = flags;
 204                  storage->lock_method = lock_method;
 205                  storage->ns = ns;
 206   
 207                  storage->callbacks =
 208                          p_new(storage->pool, struct mail_storage_callbacks, 1);
 209                  p_array_init(&storage->module_contexts, storage->pool, 5);
 210   
 211                  if (classes[i]->v.create(storage, data, error_r) == 0)
 212                          break;
 213   
 214                  if ((flags & MAIL_STORAGE_FLAG_DEBUG) != 0 && count > 1) {
 215                          i_info("%s: Couldn't create mail storage %s: %s",
 216                                 classes[i]->name, data, *error_r);
 217                  }
 218   
 219                  /* try the next one */
 220                  pool_unref(&storage->pool);
 221          }
 222          if (i == count) {
 223                  if (count <= 1) {
 224                          *error_r = t_strdup_printf("%s: %s", classes[0]->name,
 225                                                     *error_r);
Show more  
Show more  




Change Warning 8069.25328 : Uninitialized Variable

Priority:
State:
Finding:
Owner:
Note: