无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2770|回复: 4
打印 上一主题 下一主题

[讨论] grub4dos gzip 的问题

[复制链接]
跳转到指定楼层
1#
发表于 2014-11-23 18:04:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单的测试方法.

raw map /test.gz (rd)
raw cat --hex (rd)+1 正常
cat (rd)+1 正常
cat (rd)+1 再次执行失败,出错,(rd)的内容改变了,已经不是原来的内容

其中测试过把(rd)换成(fd0)等也是一样.
再测试加参数 --mem=xxxx 指定一个低端的内存,暂时还没有发现问题.

用lzma格式正常.

也就是说如果解压一个在内存中的gzip文件,这个文件内容有可能会被改变???

很早之前的版本就存在,我测试了今年最早的版本一样.

QEMU和实机测试一样.

请大家也测试一下,是不是一样存在这个问题.

注: 测试时需要把一个gz文件加载到内存中(不要自动解压)

然后访问这个文件内容.让它自动解压
2#
发表于 2014-11-23 18:56:46 | 只看该作者
自动解压,当然有可能破坏内存了。
内存处理以及解压代码,都需要经过严密的审查。目前可能都有问题。

回复

使用道具 举报

3#
 楼主| 发表于 2014-11-23 20:09:10 | 只看该作者
看起来应该是这里的问题了,这个有必要改变一下,否则解压gz文件的时候就会改变顶端内存,我过两天再看一下.

比如默认情况下的rd设备就是使用了顶端的内存,这时如果再使用到gz文件那rd里面的文件内容就会被改变.

  1. static void
  2. reset_linalloc (void)
  3. {
  4.   linalloc_topaddr = RAW_ADDR ((saved_mem_upper << 10) + 0x100000);
  5. }
复制代码

点评

大胆搞,错了没关系,还可以退回去。 今后我就不能再关注此一阶段的 grub4dos 的开发了,我主要去做操作系统整合方面的工作。  详情 回复 发表于 2014-11-24 09:02
回复

使用道具 举报

4#
发表于 2014-11-24 09:02:43 | 只看该作者
chenall 发表于 2014-11-23 20:09
看起来应该是这里的问题了,这个有必要改变一下,否则解压gz文件的时候就会改变顶端内存,我过两天再看一下.
...

大胆搞,错了没关系,还可以退回去。

今后我就不能再关注此一阶段的 grub4dos 的开发了,我主要去做操作系统整合方面的工作。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 12:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表