mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +00:00
* grub-core/lib/reed_solomon.c (rs_recover): Prevent memory leak.
(main): Close file.
This commit is contained in:
1 parent
fbc626665f
commit
1abe47dc99
2 files changed
+22
-8
No files matched your search
@@ -1,3 +1,8 @@
|
|||||||
|
2011-06-23 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/lib/reed_solomon.c (rs_recover): Prevent memory leak.
|
||||||
|
(main): Close file.
|
||||||
|
|
||||||
2011-06-23 Vladimir Serbinenko <phcoder@gmail.com>
|
2011-06-23 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/loader/i386/xnu.c (grub_cpu_xnu_fill_devprop): Don't attempt
|
* grub-core/loader/i386/xnu.c (grub_cpu_xnu_fill_devprop): Don't attempt
|
||||||
|
|||||||
@@ -265,6 +265,22 @@ rs_recover (gf_single_t *m, grub_size_t s, grub_size_t rs)
|
|||||||
|
|
||||||
syndroms (m, s, rs, sy);
|
syndroms (m, s, rs, sy);
|
||||||
|
|
||||||
|
for (i = 0; i < (int) rs; i++)
|
||||||
|
if (sy[i] != 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* No error detected. */
|
||||||
|
if (i == (int) rs)
|
||||||
|
{
|
||||||
|
#ifndef STANDALONE
|
||||||
|
free (sigma);
|
||||||
|
free (errpot);
|
||||||
|
free (errpos);
|
||||||
|
free (sy);
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
gf_single_t *eq;
|
gf_single_t *eq;
|
||||||
|
|
||||||
@@ -275,14 +291,6 @@ rs_recover (gf_single_t *m, grub_size_t s, grub_size_t rs)
|
|||||||
scratch += rs2 * (rs2 + 1) * sizeof (gf_single_t);
|
scratch += rs2 * (rs2 + 1) * sizeof (gf_single_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < (int) rs; i++)
|
|
||||||
if (sy[i] != 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* No error detected. */
|
|
||||||
if (i == (int) rs)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; i < (int) rs2; i++)
|
for (i = 0; i < (int) rs2; i++)
|
||||||
for (j = 0; j < (int) rs2 + 1; j++)
|
for (j = 0; j < (int) rs2 + 1; j++)
|
||||||
eq[i * (rs2 + 1) + j] = sy[i+j];
|
eq[i * (rs2 + 1) + j] = sy[i+j];
|
||||||
@@ -504,6 +512,7 @@ main (int argc, char **argv)
|
|||||||
rs = s / 3;
|
rs = s / 3;
|
||||||
buf = xmalloc (s + rs + SECTOR_SIZE);
|
buf = xmalloc (s + rs + SECTOR_SIZE);
|
||||||
fread (buf, 1, s, in);
|
fread (buf, 1, s, in);
|
||||||
|
fclose (in);
|
||||||
|
|
||||||
grub_reed_solomon_add_redundancy (buf, s, rs);
|
grub_reed_solomon_add_redundancy (buf, s, rs);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user