[OpenBIOS] [commit] r842 - in trunk/openbios-devel/fs: ext2 grubfs hfs hfsplus iso9660

repository service svn at openbios.org
Sun Aug 8 20:50:23 CEST 2010


Author: blueswirl
Date: Sun Aug  8 20:50:22 2010
New Revision: 842
URL: http://tracker.coreboot.org/trac/openbios/changeset/842

Log:
Add checks for open_ih() return value

Signed-off-by: Blue Swirl <blauwirbel at gmail.com>

Modified:
   trunk/openbios-devel/fs/ext2/ext2_fs.c
   trunk/openbios-devel/fs/grubfs/grubfs_fs.c
   trunk/openbios-devel/fs/hfs/hfs_fs.c
   trunk/openbios-devel/fs/hfsplus/hfsp_fs.c
   trunk/openbios-devel/fs/iso9660/iso9660_fs.c

Modified: trunk/openbios-devel/fs/ext2/ext2_fs.c
==============================================================================
--- trunk/openbios-devel/fs/ext2/ext2_fs.c	Sun Aug  8 20:28:48 2010	(r841)
+++ trunk/openbios-devel/fs/ext2/ext2_fs.c	Sun Aug  8 20:50:22 2010	(r842)
@@ -267,10 +267,14 @@
 	int fd, ret = 0;
 
 	fd = open_ih(ih);
-	if (ext2_probe(fd, offs))
-		ret = -1;
-
-	close_io(fd);
+        if (fd >= 0) {
+                if (ext2_probe(fd, offs)) {
+                        ret = -1;
+                }
+                close_io(fd);
+        } else {
+                ret = -1;
+        }
 
 	RET (ret);
 }

Modified: trunk/openbios-devel/fs/grubfs/grubfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/grubfs/grubfs_fs.c	Sun Aug  8 20:28:48 2010	(r841)
+++ trunk/openbios-devel/fs/grubfs/grubfs_fs.c	Sun Aug  8 20:50:22 2010	(r842)
@@ -336,6 +336,9 @@
 	int i;
 
 	curfs->dev_fd = open_ih(ih);
+        if (curfs->dev_fd == -1) {
+                RET( -1 );
+        }
 	curfs->offset = offs;
 
 	for (i = 0; i < sizeof(fsys_table)/sizeof(fsys_table[0]); i++) {

Modified: trunk/openbios-devel/fs/hfs/hfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfs/hfs_fs.c	Sun Aug  8 20:28:48 2010	(r841)
+++ trunk/openbios-devel/fs/hfs/hfs_fs.c	Sun Aug  8 20:50:22 2010	(r842)
@@ -479,8 +479,12 @@
 	char *volname = malloc(VOLNAME_SIZE);
 
 	fd = open_ih(my_self());
-	get_hfs_vol_name(fd, volname, VOLNAME_SIZE);
-	close_io(fd);
+        if (fd >= 0) {
+                get_hfs_vol_name(fd, volname, VOLNAME_SIZE);
+                close_io(fd);
+        } else {
+                volname[0] = '\0';
+        }
 
 	PUSH ((ucell)volname);
 }
@@ -546,10 +550,14 @@
 	int fd, ret = 0;
 
 	fd = open_ih(ih);
-	if (hfs_probe(fd, offs))
-		ret = -1;
-
-	close_io(fd);
+        if (fd >= 0) {
+                if (hfs_probe(fd, offs)) {
+                        ret = -1;
+                }
+                close_io(fd);
+        } else {
+                ret = -1;
+        }
 
 	RET (ret);
 }

Modified: trunk/openbios-devel/fs/hfsplus/hfsp_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfsplus/hfsp_fs.c	Sun Aug  8 20:28:48 2010	(r841)
+++ trunk/openbios-devel/fs/hfsplus/hfsp_fs.c	Sun Aug  8 20:50:22 2010	(r842)
@@ -427,8 +427,12 @@
 	char *volname = malloc(VOLNAME_SIZE);
 
 	fd = open_ih(my_self());
-	get_hfs_vol_name(fd, volname, VOLNAME_SIZE);
-	close_io(fd);
+        if (fd >= 0) {
+                get_hfs_vol_name(fd, volname, VOLNAME_SIZE);
+                close_io(fd);
+        } else {
+                volname[0] = '\0';
+        }
 
 	PUSH ((ucell)volname);
 }
@@ -452,10 +456,14 @@
 	int fd, ret = 0;
 
 	fd = open_ih(ih);
-	if (volume_probe(fd, offs))
-		ret = -1;
-
-	close_io(fd);
+        if (fd >= 0) {
+                if (volume_probe(fd, offs)) {
+                        ret = -1;
+                }
+                close_io(fd);
+        } else {
+                ret = -1;
+        }
 
 	RET (ret);
 }

Modified: trunk/openbios-devel/fs/iso9660/iso9660_fs.c
==============================================================================
--- trunk/openbios-devel/fs/iso9660/iso9660_fs.c	Sun Aug  8 20:28:48 2010	(r841)
+++ trunk/openbios-devel/fs/iso9660/iso9660_fs.c	Sun Aug  8 20:50:22 2010	(r842)
@@ -219,10 +219,14 @@
 	int fd, ret = 0;
 
 	fd = open_ih(ih);
-	if (iso9660_probe(fd, offs))
-		ret = -1;
-
-	close_io(fd);
+        if (fd >= 0) {
+                if (iso9660_probe(fd, offs)) {
+                        ret = -1;
+                }
+                close_io(fd);
+        } else {
+                ret = -1;
+        }
 
 	RET (ret);
 }



More information about the OpenBIOS mailing list