Luigi Rizzo wrote: >just discovered, trying to resurrect picobsd on -current, >that the compiler in 6.x/7.x has become smart and, at least >with the default compilation flags, will optimize out >the "end_mfs_root" string from the object. >As a consequence, any checks that the preloaded module >does not overflow the allocated space (looking at the >'MFS Filesystem had better STOP here' string in the patched >object) will fail. > >The attached patch fixes the issue. Any objection if i commit it ? > > seems fair to me. can't hurt anything unless MD_ROOT_SIZE is defined.. I LIKE PicoBSD.. and it woul dbe a shame if it was lost as a capacity. It's a pitty everythng has grown so much.. last I tried (on 5.x) you could JUST get a kenrel plus a shell and one small app. (in my case ssh). onto a floppy.. I hav eserious doubts about being able to do that now.. pitty.. I have an old laptop with no HD that was a good little VPN endpoint using the 5.x based picoBSD. > cheers > luigi > >Index: md.c >=================================================================== >RCS file: /prova/home/ncvs/src/sys/dev/md/md.c,v >retrieving revision 1.159 >diff -u -p -r1.159 md.c >--- md.c 31 Oct 2005 15:41:19 -0000 1.159 >+++ md.c 29 Jan 2006 12:57:22 -0000 >_at__at_ -102,8 +102,13 _at__at_ SYSCTL_INT(_debug, OID_AUTO, mddebug, CT > > #if defined(MD_ROOT) && defined(MD_ROOT_SIZE) > /* Image gets put here: */ >-static u_char mfs_root[MD_ROOT_SIZE*1024] = "MFS Filesystem goes here"; >-static u_char end_mfs_root[] __unused = "MFS Filesystem had better STOP here"; >+static struct { >+ u_char start[MD_ROOT_SIZE*1024]; >+ u_char end[128]; >+} mfs_root = { >+ .start = "MFS Filesystem goes here", >+ .end = "MFS Filesystem had better STOP here", >+}; > #endif > > static g_init_t g_md_init; >_at__at_ -1139,7 +1144,7 _at__at_ g_md_init(struct g_class *mp __unused) > g_topology_unlock(); > #ifdef MD_ROOT_SIZE > sx_xlock(&md_sx); >- md_preloaded(mfs_root, MD_ROOT_SIZE * 1024); >+ md_preloaded(mfs_root.start, MD_ROOT_SIZE * 1024); > sx_xunlock(&md_sx); > #endif > /* XXX: are preload_* static or do they need Giant ? */ >_______________________________________________ >freebsd-current_at_freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-current >To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org" > >Received on Sun Jan 29 2006 - 19:35:00 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:51 UTC