On Thu, Oct 06, 2016 at 09:15:50AM +0200, Theo Buehler wrote:
> On Thu, Oct 06, 2016 at 08:57:44AM +0200, Otto Moerbeek wrote:
> > On Tue, Oct 04, 2016 at 01:26:06PM +0200, Otto Moerbeek wrote:
> >
> > > On Tue, Oct 04, 2016 at 04:00:50AM -0700, Claus Assmann wrote:
> > >
> > > > On Tue, Oct 04, 2016, Dmitrij D. Czarkoff wrote:
> > > >
> > > > [please do not Cc me]
> > > >
> > > > > I shouldn't have started on sending patches at 3AM. This one should
> > > > > do
> > > > > what I intended it to do. Sorry for noise.
> > > >
> > > > > + else if (t == NULL && sa->minsz != sa->maxsz)
> > > > > + errx(1, "%s: parse error on line %u", filename,
> > > > > idx);
> > > >
> > > > This doesn't seem to resolve the problem that sa->rate is
> > > > not initialized, so a simple file like this still triggers
> > > > the error message (at least in my tests):
> > > >
> > > > / 500M
> > > > swap 1G
> > > > /usr 2G
> > > > /home 500G
> > >
> > > Likely, this is better.
> >
> > Any OK?
> >
>
> Yes, ok, this fixes one bug.
>
> However, if I apply the above template to a ~300G disk, the
> autoallocation fails silently. Is that intended?
Nope, I'll look into this if nobody beats me to it,
-Otto
>
> # cat /tmp/templ
> / 500M
> swap 1G
> /usr 2G
> /home 500G
> # obj/disklabel -A -n -T /tmp/templ -E sd0
> Label editor (enter '?' for help at any prompt)
> > p
> OpenBSD area: 64-625137345; size: 625137281; free: 625137281
> # size offset fstype [fsize bsize cpg]
> c: 625142448 0 unused
> >
>
> > >
> > > -Otto
> > >
> > > Index: editor.c
> > > ===================================================================
> > > RCS file: /cvs/src/sbin/disklabel/editor.c,v
> > > retrieving revision 1.303
> > > diff -u -p -r1.303 editor.c
> > > --- editor.c 2 Sep 2016 10:47:17 -0000 1.303
> > > +++ editor.c 4 Oct 2016 11:25:36 -0000
> > > @@ -2386,6 +2386,7 @@ parse_autotable(char *filename)
> > > idx + 1, sizeof(*sa))) == NULL)
> > > err(1, NULL);
> > > sa = &(alloc_table[0].table[idx]);
> > > + memset(sa, 0, sizeof(*sa));
> > > idx++;
> > >
> > > if ((sa->mp = get_token(&buf, &len)) == NULL ||
> >