[OpenBIOS] r44 - openbios-devel/arch/sparc32
svn@openbios.org
svn at openbios.org
Mon Jun 5 21:40:05 CEST 2006
Author: stepan
Date: 2006-06-05 21:40:05 +0200 (Mon, 05 Jun 2006)
New Revision: 44
Modified:
openbios-devel/arch/sparc32/aoutload.c
openbios-devel/arch/sparc32/elfload.c
openbios-devel/arch/sparc32/linux_load.c
openbios-devel/arch/sparc32/loadfs.c
Log:
safe filedescriptors
Modified: openbios-devel/arch/sparc32/aoutload.c
===================================================================
--- openbios-devel/arch/sparc32/aoutload.c 2006-06-05 19:30:59 UTC (rev 43)
+++ openbios-devel/arch/sparc32/aoutload.c 2006-06-05 19:40:05 UTC (rev 44)
@@ -139,5 +139,6 @@
retval = 0;
out:
+ file_close();
return retval;
}
Modified: openbios-devel/arch/sparc32/elfload.c
===================================================================
--- openbios-devel/arch/sparc32/elfload.c 2006-06-05 19:30:59 UTC (rev 43)
+++ openbios-devel/arch/sparc32/elfload.c 2006-06-05 19:40:05 UTC (rev 44)
@@ -127,6 +127,7 @@
}
}
out:
+ file_close();
if (buf)
free(buf);
return retval;
@@ -402,6 +403,7 @@
retval = 0;
out:
+ file_close();
if (phdr)
free(phdr);
if (boot_notes)
Modified: openbios-devel/arch/sparc32/linux_load.c
===================================================================
--- openbios-devel/arch/sparc32/linux_load.c 2006-06-05 19:30:59 UTC (rev 43)
+++ openbios-devel/arch/sparc32/linux_load.c 2006-06-05 19:40:05 UTC (rev 44)
@@ -589,8 +589,10 @@
return -1;
kern_addr = load_linux_header(&hdr);
- if (kern_addr == 0)
+ if (kern_addr == 0) {
+ file_close();
return LOADER_NOT_SUPPORT;
+ }
params = phys_to_virt(LINUX_PARAM_LOC);
init_linux_params(params, &hdr);
Modified: openbios-devel/arch/sparc32/loadfs.c
===================================================================
--- openbios-devel/arch/sparc32/loadfs.c 2006-06-05 19:30:59 UTC (rev 43)
+++ openbios-devel/arch/sparc32/loadfs.c 2006-06-05 19:40:05 UTC (rev 44)
@@ -13,6 +13,15 @@
return load_fd>-1;
}
+void file_close(void)
+{
+ if(load_fd==-1)
+ return;
+
+ close_io(load_fd);
+ load_fd=-1;
+}
+
int lfile_read(void *buf, unsigned long len)
{
int ret = 0;
More information about the OpenBIOS
mailing list