[pacman-dev] [PATCH] Check return value of fgets calls
Allan McRae
allan at archlinux.org
Sun Jun 27 07:45:54 EDT 2010
Prevents compiler warnings with -D_FORTIFY_SOURCE=2
Signed-off-by: Allan McRae <allan at archlinux.org>
---
lib/libalpm/be_files.c | 8 ++++++--
lib/libalpm/trans.c | 3 +--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c
index c26bef2..e2bbe28 100644
--- a/lib/libalpm/be_files.c
+++ b/lib/libalpm/be_files.c
@@ -657,7 +657,9 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
goto error;
}
while(!feof(fp)) {
- fgets(line, 255, fp);
+ if(fgets(line, 256, fp) == NULL) {
+ break;
+ }
_alpm_strtrim(line);
if(strcmp(line, "%DEPENDS%") == 0) {
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
@@ -693,7 +695,9 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
snprintf(path, PATH_MAX, "%sdeltas", pkgpath);
if((fp = fopen(path, "r"))) {
while(!feof(fp)) {
- fgets(line, 255, fp);
+ if(fgets(line, 256, fp) == NULL) {
+ break;
+ }
_alpm_strtrim(line);
if(strcmp(line, "%DELTAS%") == 0) {
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index c042f09..6ebfa8f 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -324,8 +324,7 @@ static int grep(const char *fn, const char *needle)
while(!feof(fp)) {
char line[1024];
int sline = sizeof(line)-1;
- fgets(line, sline, fp);
- if(feof(fp)) {
+ if(fgets(line, sline, fp) == NULL || feof(fp)) {
continue;
}
if(strstr(line, needle)) {
--
1.7.1
More information about the pacman-dev
mailing list