检测到在gammu恢复过程中缓冲区溢出

1 投票
1 回答
692 浏览
提问于 2025-04-18 17:59

我在Linux Mint 17上成功备份了我的诺基亚C2-01手机,使用了

gammu backup my_backup_file

但是我发现我无法恢复这个备份文件,真让我感到震惊。执行

gammu restore my_backup_file

后出现了:

*** buffer overflow detected ***: gammu terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f2b8935408c]
/lib/x86_64-linux-gnu/libc.so.6(+0x111020)[0x7f2b89353020]
/usr/lib/libGammu.so.7(LoadBackup+0x1e4)[0x7f2b89af7584]
gammu(ReadBackup+0x22)[0x42d552]
gammu(Restore+0x44)[0x42d784]
gammu(ProcessParameters+0x201)[0x42a261]
gammu(main+0x641)[0x40aa81]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f2b89263de5]
gammu[0x40ab35]

这个页面看起来非常相关,但我该如何修复我的备份文件,以便能够成功恢复呢?

1 个回答

0

来自这个邮件列表的帖子

原因是原始备份文件中的创建者字段有84个字符...[b]但GSM_Backup结构体中定义这个字符串的字段为:char Creator[80];

一个非常简单的解决办法就是用文本编辑器打开备份文件,把Creator字段的内容缩短:

Gammu 1.30.0, Linux, kernel 2.6.34.10-0.6-default (#1 SMP 2011-12-13 18:27:38 +0100

确保它少于80个字符。这样备份恢复就能完美工作了!

撰写回答