mirror of
https://github.com/moparisthebest/pacman
synced 2024-08-13 17:03:46 -04:00
cleaned up db_write error cases handling
This commit is contained in:
parent
299d708b0d
commit
c3ffe4367a
@ -462,6 +462,7 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
mode_t oldmask;
|
mode_t oldmask;
|
||||||
PMList *lp = NULL;
|
PMList *lp = NULL;
|
||||||
|
int retval = 0;
|
||||||
|
|
||||||
if(db == NULL || info == NULL) {
|
if(db == NULL || info == NULL) {
|
||||||
return(-1);
|
return(-1);
|
||||||
@ -478,7 +479,8 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
snprintf(path, PATH_MAX, "%s/desc", topdir);
|
snprintf(path, PATH_MAX, "%s/desc", topdir);
|
||||||
if((fp = fopen(path, "w")) == NULL) {
|
if((fp = fopen(path, "w")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/desc", db->treename);
|
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/desc", db->treename);
|
||||||
goto error;
|
retval = 1;
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
fputs("%NAME%\n", fp);
|
fputs("%NAME%\n", fp);
|
||||||
fprintf(fp, "%s\n\n", info->name);
|
fprintf(fp, "%s\n\n", info->name);
|
||||||
@ -511,6 +513,7 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
fputs("%REASON%\n", fp);
|
fputs("%REASON%\n", fp);
|
||||||
fprintf(fp, "%d\n\n", info->reason);
|
fprintf(fp, "%d\n\n", info->reason);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
fp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FILES */
|
/* FILES */
|
||||||
@ -518,7 +521,8 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
snprintf(path, PATH_MAX, "%s/files", topdir);
|
snprintf(path, PATH_MAX, "%s/files", topdir);
|
||||||
if((fp = fopen(path, "w")) == NULL) {
|
if((fp = fopen(path, "w")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/files", db->treename);
|
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/files", db->treename);
|
||||||
goto error;
|
retval = -1;
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
fputs("%FILES%\n", fp);
|
fputs("%FILES%\n", fp);
|
||||||
for(lp = info->files; lp; lp = lp->next) {
|
for(lp = info->files; lp; lp = lp->next) {
|
||||||
@ -531,6 +535,7 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
}
|
}
|
||||||
fprintf(fp, "\n");
|
fprintf(fp, "\n");
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
fp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DEPENDS */
|
/* DEPENDS */
|
||||||
@ -538,7 +543,8 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
snprintf(path, PATH_MAX, "%s/depends", topdir);
|
snprintf(path, PATH_MAX, "%s/depends", topdir);
|
||||||
if((fp = fopen(path, "w")) == NULL) {
|
if((fp = fopen(path, "w")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/depends", db->treename);
|
_alpm_log(PM_LOG_ERROR, "db_write: could not open file %s/depends", db->treename);
|
||||||
goto error;
|
retval = -1;
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
fputs("%DEPENDS%\n", fp);
|
fputs("%DEPENDS%\n", fp);
|
||||||
for(lp = info->depends; lp; lp = lp->next) {
|
for(lp = info->depends; lp; lp = lp->next) {
|
||||||
@ -561,18 +567,20 @@ int db_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq)
|
|||||||
}
|
}
|
||||||
fprintf(fp, "\n");
|
fprintf(fp, "\n");
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
fp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* INSTALL */
|
/* INSTALL */
|
||||||
/* nothing needed here (script is automatically extracted) */
|
/* nothing needed here (script is automatically extracted) */
|
||||||
|
|
||||||
|
cleanup:
|
||||||
umask(oldmask);
|
umask(oldmask);
|
||||||
|
|
||||||
return(0);
|
if(fp) {
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
error:
|
return(retval);
|
||||||
umask(oldmask);
|
|
||||||
return(-1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_remove(pmdb_t *db, pmpkg_t *info)
|
int db_remove(pmdb_t *db, pmpkg_t *info)
|
||||||
|
Loading…
Reference in New Issue
Block a user