Remove outdated comment regarding an old bug.
[oweals/opkg-lede.git] / libopkg / opkg_conf.c
index bcc79ed16d8d45e2ab7dfb07256dd4646606e161..a145ae7ecade6722b4ffa41df339efb1ee2e63f5 100644 (file)
@@ -344,7 +344,7 @@ opkg_conf_write_status_files(void)
           dest = (pkg_dest_t *)iter->data;
 
           dest->status_fp = fopen(dest->status_file_name, "w");
-          if (dest->status_fp == NULL) {
+          if (dest->status_fp == NULL && errno != EROFS) {
                opkg_perror(ERROR, "Can't open status file %s",
                     dest->status_file_name);
                ret = -1;
@@ -376,7 +376,7 @@ opkg_conf_write_status_files(void)
 
      list_for_each_entry(iter, &conf->pkg_dest_list.head, node) {
           dest = (pkg_dest_t *)iter->data;
-          if (fclose(dest->status_fp) == EOF) {
+          if (dest->status_fp && fclose(dest->status_fp) == EOF) {
                opkg_perror(ERROR, "Couldn't close %s", dest->status_file_name);
               ret = -1;
           }
@@ -486,7 +486,10 @@ opkg_conf_init(void)
 
        if (lockf(lock_fd, F_TLOCK, (off_t)0) == -1) {
                opkg_perror(ERROR, "Could not lock %s", lock_file);
-               goto err3;
+               if (close(lock_fd) == -1)
+                       opkg_perror(ERROR, "Couldn't close descriptor %d (%s)",
+                               lock_fd, lock_file);
+               goto err2;
        }
 
        if (conf->tmp_dir)
@@ -502,7 +505,7 @@ opkg_conf_init(void)
        conf->tmp_dir = mkdtemp(tmp);
        if (conf->tmp_dir == NULL) {
                opkg_perror(ERROR, "Creating temp dir %s failed", tmp);
-               goto err4;
+               goto err3;
        }
 
        pkg_hash_init();
@@ -533,14 +536,14 @@ opkg_conf_init(void)
        }
 
        if (resolve_pkg_dest_list(&tmp_dest_nv_pair_list))
-               goto err5;
+               goto err4;
 
        nv_pair_list_deinit(&tmp_dest_nv_pair_list);
 
        return 0;
 
 
-err5:
+err4:
        free(conf->lists_dir);
 
        pkg_hash_deinit();
@@ -549,10 +552,10 @@ err5:
 
        if (rmdir(conf->tmp_dir) == -1)
                opkg_perror(ERROR, "Couldn't remove dir %s", conf->tmp_dir);
-err4:
+err3:
        if (lockf(lock_fd, F_ULOCK, (off_t)0) == -1)
                opkg_perror(ERROR, "Couldn't unlock %s", lock_file);
-err3:
+
        if (close(lock_fd) == -1)
                opkg_perror(ERROR, "Couldn't close descriptor %d (%s)",
                                lock_fd, lock_file);