Article View: be.comp.programming
Article #1507Re: Printf: vaste lengte strings en ints?
From: Dr.Ruud
Date: Wed, 02 Mar 2005 22:20
Date: Wed, 02 Mar 2005 22:20
50 lines
2807 bytes
2807 bytes
Wat moi schreef, bleek het
begin van iets moois; kijk zelf maar:
> Dr.Ruud:
>> moi:
>>> Dr.Ruud:
>>>> Aquila:
>>>>> [printf]
>>>>> Kan %i een maximum lengte opleggen zonder daarvoor extra nullen te
>>>>> printen? In beide gevallen mag er afgekapt worden, ik wil gewoon
>>>>> beveiligingsfouten vermijden.
>>>> Nee, maar je zou wel kunnen casten, bijvoorbeeld
>>>> (int32) id
>>>> want op die manier weet je dat %i maximaal 10 >>> nee, 11 <<<
>>>> tekens kan opleveren, zelfs als later 'id' een 64-bits integer
>>>> zou worden.
>>> Is wel erg paranoide, IMO, om rekening te houden met andere sizes.
>> Het had ons allemaal heel wat exploits kunnen schelen.
> Exploits wegens 32->64 bits "migratie" ?
Er waren ooit al andere problemen, zoals
printf("value of 32768 is %d\n", 32768);
> Ik hou niet van casts.
> probeer ze tot het uiterste te minimaliseren.
> In dit geval zou ik zeker geen cast willen.
OK, maar OP vroeg om een oplossing bij %d, en er mocht afgekapt worden.
Er zijn, zoals gemeld, genoeg manieren om de buffer lang genoeg te laten
zijn, dus dan heb je die cast helemaal niet nodig, en hoef/mag/moet je
'm dus ook niet gebruiken.
En printf() is meer iets van de vorige eeuw. Die slechte relatie
tussen wat er op de stack wordt gezet (de argumenten) en wat er
weer wordt afgehaald (afhankelijk van de tekst die in de format-
string staat) gaat tegen alle elegantie in. Zelfs late-binding
is minder onfris.
--
Affijn, Ruud ` - �
+ ` � *
� ` Jvr qvg yrrfg,
� = ` fgresg wbatre.
Technical Details
Message-ID:
<d05hsg.1bo.1@news.isolution.nl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!npeer.de.kpn-eurorings.net!border2.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!transit.news.xs4all.nl!post.news.xs4all.nl!not-for-mailReferences:
<M5qdnYvpZutbs7nfRVnyjA@scarlet.biz> <d01i4u.14c.1@news.isolution.nl> <CqudnXnc_MjnCbjfRVnyhg@casema.nl> <d050po.130.1@news.isolution.nl> <FMSdnW58LdbOtrvfRVnyvQ@casema.nl>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,f962124bbb04ff22
X-Google-Thread: 107324,f962124bbb04ff22
X-Google-Attributes: gidfcea4,gid107324,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!npeer.de.kpn-eurorings.net!border2.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!transit.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Message-ID: <d05hsg.1bo.1@news.isolution.nl>
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Newsgroups: be.comp.programming,nl.comp.programmeren
References: <M5qdnYvpZutbs7nfRVnyjA@scarlet.biz> <d01i4u.14c.1@news.isolution.nl> <CqudnXnc_MjnCbjfRVnyhg@casema.nl> <d050po.130.1@news.isolution.nl> <FMSdnW58LdbOtrvfRVnyvQ@casema.nl>
Subject: Re: Printf: vaste lengte strings en ints?
Date: Wed, 2 Mar 2005 23:20:07 +0100
Organization: Chaos rules.
X-Newsreader: WMDIYB
X-Archive-Me: please
Approved: yesterday
X-Face: &CQ$FIr!=+=w,8`0Q^Ug"1>F[(/op8->E;NQet`5fe$;=e*!Z5&REvp<~Tj|"Y[|8OcJ{w#z&mB7B:I)XO*%_|\]|YW$C>>$Q[9-#K~c$tQ^Mf0,wMo?h\C)TE>f
Lines: 52
NNTP-Posting-Host: 194.109.164.102
X-Trace: 1109802602 news.xs4all.nl 28984 [::ffff:194.109.164.102]:34795
X-Complaints-To: abuse@xs4all.nl