Skip to contentSkip to conversation

Bug?

DISCUSSION Wjatscheslaw Stoljarski 2 participants 4 messages Jul 6, 2016 – Jul 7, 2016

lore
Share & tools
lore
#0 lore raw

Hi,

overwriting a file in barebox, didn't work properly.

---------------------- 8< ------------------------- unable to handle NULL pointer dereference at address 0x00000000

pc : [<2ff20f86>]    lr : [<2ff20eff>]

sp : 2ffef808 ip : 201383fc fp : 00000000
r10: 2003cc94 r9 : 20138665 r8 : 00000269
r7 : 00000000 r6 : 1ff9a5d0 r5 : 00001fff r4 : 00000269
r3 : 00000000 r2 : 00001fff r1 : 00000000 r0 : 201383fc
Flags: Nzcv IRQs off FIQs off Mode SVC_32
[<2ff20f86>] (ramfs_read+0xba/0xc8) from [<2ff228d5>] (__read+0x41/0x58) [<2ff228d5>] (__read+0x41/0x58) from [<2ff22f6f>] (read+0x2b/0x48) [<2ff22f6f>] (read+0x2b/0x48) from [<2ff1ca31>] (copy_file+0x85/0x118) [<2ff1ca31>] (copy_file+0x85/0x118) from [<2ff14ead>] (do_cp+0x109/0x128) [<2ff14ead>] (do_cp+0x109/0x128) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff06da9>] (parse_stream_outer+0xd9/0x164) [<2ff06da9>] (parse_stream_outer+0xd9/0x164) from [<2ff076d1>] (run_shell+0x31/0x60) [<2ff076d1>] (run_shell+0x31/0x60) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff0715d>] (run_list_real+0x285/0x638)

[<2ff28519>] (unwind_backtrace+0x1/0x58) from [<2ff00cd1>] (panic+0x1d/0x2c) [<2ff00cd1>] (panic+0x1d/0x2c) from [<2ff289bd>] (do_exception+0xd/0x10) [<2ff289bd>] (do_exception+0xd/0x10) from [<2ff28a1d>] (do_data_abort+0x21/0x2c) [<2ff28a1d>] (do_data_abort+0x21/0x2c) from [<2ff28714>] (do_abort_6+0x48/0x54) ---------------------- 8< -------------------------

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw

Hi Wjatscheslaw,

Quoted 3 lines · Wjatscheslaw Stoljarski

Hi,

overwriting a file in barebox, didn't work properly.

I have never seen this. Can you reproduce this any maybe even have a command sequence that fails? A quick 'cp' from one file to another existing file did not show this problem.

Sascha

Quoted 32 lines

---------------------- 8< ------------------------- unable to handle NULL pointer dereference at address 0x00000000

pc : [<2ff20f86>]    lr : [<2ff20eff>]

sp : 2ffef808 ip : 201383fc fp : 00000000
r10: 2003cc94 r9 : 20138665 r8 : 00000269
r7 : 00000000 r6 : 1ff9a5d0 r5 : 00001fff r4 : 00000269
r3 : 00000000 r2 : 00001fff r1 : 00000000 r0 : 201383fc
Flags: Nzcv IRQs off FIQs off Mode SVC_32
[<2ff20f86>] (ramfs_read+0xba/0xc8) from [<2ff228d5>] (__read+0x41/0x58) [<2ff228d5>] (__read+0x41/0x58) from [<2ff22f6f>] (read+0x2b/0x48) [<2ff22f6f>] (read+0x2b/0x48) from [<2ff1ca31>] (copy_file+0x85/0x118) [<2ff1ca31>] (copy_file+0x85/0x118) from [<2ff14ead>] (do_cp+0x109/0x128) [<2ff14ead>] (do_cp+0x109/0x128) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff06da9>] (parse_stream_outer+0xd9/0x164) [<2ff06da9>] (parse_stream_outer+0xd9/0x164) from [<2ff076d1>] (run_shell+0x31/0x60) [<2ff076d1>] (run_shell+0x31/0x60) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff0715d>] (run_list_real+0x285/0x638)

[<2ff28519>] (unwind_backtrace+0x1/0x58) from [<2ff00cd1>] (panic+0x1d/0x2c) [<2ff00cd1>] (panic+0x1d/0x2c) from [<2ff289bd>] (do_exception+0xd/0x10) [<2ff289bd>] (do_exception+0xd/0x10) from [<2ff28a1d>] (do_data_abort+0x21/0x2c) [<2ff28a1d>] (do_data_abort+0x21/0x2c) from [<2ff28714>] (do_abort_6+0x48/0x54) ---------------------- 8< -------------------------

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#2 lore raw

Hi Sascha,

I can reproduce this on barebox 2016.06.0 for example with:
cp /env/data/ansi-colors /env/data/
But "memcpy -s /env/data/ansi-colors -d /env/data/ansi-colors 0 0" works without problem.

I try this with next barebox version (2016.07.0). Maybe it's already fixed.

Quoted 41 lines · Sascha Hauer

Hi Wjatscheslaw,

Quoted 3 lines · Wjatscheslaw Stoljarski

Hi,

overwriting a file in barebox, didn't work properly.

I have never seen this. Can you reproduce this any maybe even have a command sequence that fails? A quick 'cp' from one file to another existing file did not show this problem.

Sascha

Quoted 27 lines

---------------------- 8< ------------------------- unable to handle NULL pointer dereference at address 0x00000000

pc : [<2ff20f86>]    lr : [<2ff20eff>]

sp : 2ffef808 ip : 201383fc fp : 00000000
r10: 2003cc94 r9 : 20138665 r8 : 00000269
r7 : 00000000 r6 : 1ff9a5d0 r5 : 00001fff r4 : 00000269
r3 : 00000000 r2 : 00001fff r1 : 00000000 r0 : 201383fc
Flags: Nzcv IRQs off FIQs off Mode SVC_32
[<2ff20f86>] (ramfs_read+0xba/0xc8) from [<2ff228d5>] (__read+0x41/0x58) [<2ff228d5>] (__read+0x41/0x58) from [<2ff22f6f>] (read+0x2b/0x48) [<2ff22f6f>] (read+0x2b/0x48) from [<2ff1ca31>] (copy_file+0x85/0x118) [<2ff1ca31>] (copy_file+0x85/0x118) from [<2ff14ead>] (do_cp+0x109/0x128) [<2ff14ead>] (do_cp+0x109/0x128) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff06da9>] (parse_stream_outer+0xd9/0x164) [<2ff06da9>] (parse_stream_outer+0xd9/0x164) from [<2ff076d1>] (run_shell+0x31/0x60) [<2ff076d1>] (run_shell+0x31/0x60) from [<2ff03209>] (execute_command+0x21/0x48) [<2ff03209>] (execute_command+0x21/0x48) from [<2ff07443>] (run_list_real+0x56b/0x638) [<2ff07443>] (run_list_real+0x56b/0x638) from [<2ff0715d>] (run_list_real+0x285/0x638)

[<2ff28519>] (unwind_backtrace+0x1/0x58) from [<2ff00cd1>] (panic+0x1d/0x2c) [<2ff00cd1>] (panic+0x1d/0x2c) from [<2ff289bd>] (do_exception+0xd/0x10) [<2ff289bd>] (do_exception+0xd/0x10) from [<2ff28a1d>] (do_data_abort+0x21/0x2c) [<2ff28a1d>] (do_data_abort+0x21/0x2c) from [<2ff28714>] (do_abort_6+0x48/0x54) ---------------------- 8< -------------------------

Quoted 11 lines
Quoted 5 lines

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 4 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#3 lore raw
Quoted 7 lines · Wjatscheslaw Stoljarski

Hi Sascha,

I can reproduce this on barebox 2016.06.0 for example with:
cp /env/data/ansi-colors /env/data/
But "memcpy -s /env/data/ansi-colors -d /env/data/ansi-colors 0 0" works without problem.

I try this with next barebox version (2016.07.0). Maybe it's already fixed.

Nope, it isn't.

So the problem comes when you copy a file over itself. This indeed crashes here aswell. This points to a bug in the ramfs implementation which should be fixed. Also there's another bug in 'cp': copy_file should recognize when source and destination are the same file and report an error in this case.

Sascha

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox