]> code.delx.au - refind/commitdiff
Fixed bug that could hang system if a filesystem name was shorter than
authorsrs5694 <srs5694@users.sourceforge.net>
Mon, 7 Jan 2013 23:03:53 +0000 (18:03 -0500)
committersrs5694 <srs5694@users.sourceforge.net>
Mon, 7 Jan 2013 23:03:53 +0000 (18:03 -0500)
three characters.

NEWS.txt
docs/refind/configfile.html
docs/refind/getting.html
refind.spec
refind/main.c

index 910221579d2e057f3d0a330257a4bd29b8220c6d..fe96fcf7c2cf875ed486a2a339863cc37251498b 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,9 @@
+0.6.4 (1/?/2013):
+-----------------
+
+- Fixed bug that could cause a hang on boot if any partition had a name
+  that was less than three characters long.
+
 0.6.3 (1/6/2013):
 -----------------
 
index eb859306f50e21661fcdc9fa24b16251788fa7cd..3b8e2712561ee5c37bacb0ae812fa71f99349dfa 100644 (file)
@@ -400,7 +400,7 @@ menuentry "Windows via shell script" {
 <pre class="listing">mm 0003003E 8 -pci
 fs0:\EFI\Microsoft\Boot\bootmgfw.efi</pre>
 
-<p>This example writes data to the computer's PCI bus via the EFI shell's <tt>mm</tt> command and then launches Windows. Chances are you won't need to engage in such operations, and I do <i>not</i> recommend you try this exact example unless you know what you're doing! This command was required to activate the video hardware on a computer of a person with whom I corresponded prior to booting Windows, but such needs are rare.</p>
+<p>This example writes data to the computer's PCI bus via the EFI shell's <tt>mm</tt> command and then launches Windows. Chances are you won't need to engage in such operations, and I do <i>not</i> recommend you try this exact example unless you know what you're doing! This command was required to activate the video hardware on a computer of a person with whom I corresponded prior to booting Windows, but such needs are rare. Another example of a similar approach can be found in <a href="http://forum.techinferno.com/diy-e-gpu-projects/printfriendly2367.htm">this forum thread.</a> A few pointers on finding addresses for your hardware can be found <a href="http://forum.techinferno.com/diy-e-gpu-projects/2367-macbook-pro-retina-15-gtx-560-ti-%40-th05-8.html#post36199">in this post.</a></p>
 
 <p>You can combine these OS stanzas with the global <tt>refind.conf</tt> options presented earlier. The result would contain just two entries on the rEFInd boot menu (for Gentoo and Windows, since the Ubuntu entry is disabled), unless rEFInd found other boot options on an external or optical disk.</p>
 
index 1b25ff741e0b3d18cd51a117787adcc211f1b1ef..0e720d25799726102a51804cb7f425b472ffd13d 100644 (file)
@@ -117,7 +117,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     href="installing.html">Installing rEFInd</a> page.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.3/refind-0.6.3-1.x86_64.rpm/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.3/refind-0.6.3-2.x86_64.rpm/download">A
     binary RPM file</a></b>&mdash;If you use an RPM-based <i>x</i>86-64
     Linux system such as Fedora or openSUSE, you can install the binary RPM
     package rather than use the binary zip file. (I don't provide an
@@ -126,13 +126,13 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     rEFInd</a> page) as part of the installation process. Distribution
     maintainers can examine the <tt>refind.spec</tt> file in the source
     package and tweak it to their needs. The <a
-    href="http://sourceforge.net/projects/refind/files/0.6.3/refind-0.6.3-1.src.rpm/download">source
+    href="http://sourceforge.net/projects/refind/files/0.6.3/refind-0.6.3-2.src.rpm/download">source
     RPM file</a> might or might not build on your system as-is; it relies
     on assumptions about the locations of the GNU-EFI development
     files.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.3/refind_0.6.3-1_amd64.deb/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.3/refind_0.6.3-2_amd64.deb/download">A
     binary Debian package</a></b>&mdash;If you use an <i>x</i>86-64 version
     of Debian, Ubuntu, Mint, or another Debian-based distribution, you can
     install from this package, which was converted from the binary RPM
index aaa314537caad5476aeb08d27b0207246e7ffd4d..152e2ad29d86552a50be59d41332a75208c99379 100644 (file)
@@ -1,7 +1,7 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.6.3
-Release: 2%{?dist}
+Version: 0.6.3.2
+Release: 1%{?dist}
 License: GPLv3
 URL: http://www.rodsbooks.com/refind/
 Group: System Environment/Base
index 46062c7a25f26808ffb917c71c2457e454c8038c..669cdb83fe873d95084218e8fad4b9f9f468d6ae 100644 (file)
@@ -128,7 +128,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.3");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.3.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
@@ -908,7 +908,7 @@ static BOOLEAN ShouldScan(REFIT_VOLUME *Volume, CHAR16 *Path) {
       if (VolName != NULL) {
          if ((StriCmp(VolName, Volume->VolName) == 0) && (StriCmp(DontScanDir, Path) == 0))
             ScanIt = FALSE;
-         if ((VolName[0] == L'f') && (VolName[1] == L's') && (VolName[2] >= L'0') && (VolName[2] <= L'9')) {
+         if ((StrLen(VolName) > 2) && (VolName[0] == L'f') && (VolName[1] == L's') && (VolName[2] >= L'0') && (VolName[2] <= L'9')) {
             VolNum = Atoi(VolName + 2);
             if ((VolNum == Volume->VolNumber) && (StriCmp(DontScanDir, Path) == 0))
                ScanIt = FALSE;
@@ -1032,7 +1032,8 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) {
          SplitVolumeAndFilename(&Directory, &VolName);
          CleanUpPathNameSlashes(Directory);
          Length = StrLen(Directory);
-         if ((Length > 0) && (VolName[0] == L'f') && (VolName[1] == L's') && (VolName[2] >= L'0') && (VolName[2] <= L'9'))
+         if ((Length > 0) && (StrLen(VolName) > 2) && (VolName[0] == L'f') && (VolName[1] == L's') &&
+             (VolName[2] >= L'0') && (VolName[2] <= L'9'))
             VolNum = Atoi(VolName + 2);
          if ((Length > 0) && ((VolName == NULL) || (StriCmp(VolName, Volume->VolName) == 0) || (Volume->VolNumber == VolNum)))
             ScanLoaderDir(Volume, Directory, MatchPatterns);