www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/03/01/13:12:29

Message-Id: <199903011812.SAA19946@out2.ibm.net>
From: "Mark E." <snowball3 AT usa DOT net>
To: djgpp-workers AT delorie DOT com
Date: Mon, 1 Mar 1999 13:12:27 -0500
MIME-Version: 1.0
Subject: Re: chroot patches r3
References: <199902281957 DOT TAA94214 AT out5 DOT ibm DOT net>
In-reply-to: <Pine.SUN.3.91.990301112814.2578N-100000@is>
X-mailer: Pegasus Mail for Win32 (v3.01d)
Reply-To: djgpp-workers AT delorie DOT com

--Message-Boundary-22211
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body

> > + int
> > + fchroot (int fd)
> > + {
> > +   unsigned int flags = __chroot_flags;
> > + 
> > +   if (fd < 0)
> > +   {
> > +     errno = EINVAL;
> > +     return -1;
> > +   }
> 
> I think errno should be set here to EBADF, not EINVAL.

Since an attempt to open() a directory will return -1 for a file descriptor, I 
think for now it might be better to remove that check since it would 
interfere with the very incompatibility that is being worked around.

Also, I've attached patches for chroot.txh and fchroot.txh, plus patches 
for crt1.c and a revised patch for c1root.c.

Mark

--- 
Mark Elbrecht
snowball3 AT usa DOT net http://members.xoom.com/snowball3/

--Message-Boundary-22211
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  djgpp1.dif
     Date:  1 Mar 1999, 13:08
     Size:  8069 bytes.
     Type:  Unknown

--Message-Boundary-22211
Content-type: Application/Octet-stream; name="djgpp1.dif"; type=Unknown
Content-disposition: attachment; filename="djgpp1.dif"
Content-transfer-encoding: BASE64

KioqIHNyYy9saWJjL2NydDAvY3J0MS5jLm9yaWcJVGh1IFNlcCAxNyAwNTo1MDoyMiAxOTk4
DQotLS0gc3JjL2xpYmMvY3J0MC9jcnQxLmMJRnJpIEZlYiAyNiAxNzo1MTo0MiAxOTk5DQoq
KioqKioqKioqKioqKioNCioqKiAxLDMgKioqKg0KLS0tIDEsNCAtLS0tDQorIC8qIENvcHly
aWdodCAoQykgMTk5OSBESiBEZWxvcmllLCBzZWUgQ09QWUlORy5ESiBmb3IgZGV0YWlscyAq
Lw0KICAvKiBDb3B5cmlnaHQgKEMpIDE5OTggREogRGVsb3JpZSwgc2VlIENPUFlJTkcuREog
Zm9yIGRldGFpbHMgKi8NCiAgLyogQ29weXJpZ2h0IChDKSAxOTk3IERKIERlbG9yaWUsIHNl
ZSBDT1BZSU5HLkRKIGZvciBkZXRhaWxzICovDQogIC8qIENvcHlyaWdodCAoQykgMTk5NiBE
SiBEZWxvcmllLCBzZWUgQ09QWUlORy5ESiBmb3IgZGV0YWlscyAqLw0KKioqKioqKioqKioq
KioqDQoqKiogMTg5LDE5NCAqKioqDQotLS0gMTkwLDE5NiAtLS0tDQogICAgX19jcnQwX3Nl
dHVwX2FyZ3VtZW50cygpOw0KICAgIF9ucHhzZXR1cChfX2NydDBfYXJndiA/IF9fY3J0MF9h
cmd2WzBdIDogX19kb3NfYXJndjApOw0KICAgIF9jcnQwX2luaXRfbWNvdW50KCk7DQorICAg
X19jcnQwX3NldHVwX2Nocm9vdCgpOw0KICAgIF9fbWFpbigpOw0KICAgIGVycm5vID0gMDsJ
LyogQU5TSSBzYXlzIGVycm5vIHNob3VsZCBiZSB6ZXJvIGF0IHByb2dyYW0gc3RhcnR1cCAq
Lw0KICAgIGV4aXQobWFpbihfX2NydDBfYXJnYywgX19jcnQwX2FyZ3YsIGVudmlyb24pKTsN
CioqKiBzcmMvbGliYy9jb21wYXQvdW5pc3RkL2Nocm9vdC50eGgub3JpZwlTdW4gRmViIDI4
IDE0OjI1OjAyIDE5OTkNCi0tLSBzcmMvbGliYy9jb21wYXQvdW5pc3RkL2Nocm9vdC50eGgJ
TW9uIE1hciAgMSAxMzowMDoyMiAxOTk5DQoqKioqKioqKioqKioqKioNCioqKiAwICoqKioN
Ci0tLSAxLDc0IC0tLS0NCisgQG5vZGUgY2hyb290LCBmaWxlIHN5c3RlbQ0KKyBAc3ViaGVh
ZGluZyBTeW50YXgNCisgDQorIEBleGFtcGxlDQorICNpbmNsdWRlIDx1bmlzdGQuaD4NCisg
DQorIGV4dGVybiB1bnNpZ25lZCBpbnQgX19jaHJvb3RfZmxhZ3M7DQorIA0KKyBpbnQgY2hy
b290KGNvbnN0IGNoYXIgKm5ld19yb290X2RpcmVjdG9yeSk7DQorIEBlbmQgZXhhbXBsZQ0K
KyANCisgQHN1YmhlYWRpbmcgRGVzY3JpcHRpb24NCisgDQorIENhdXNlcyBAdmFye25ld19y
b290X2RpcmVjdG9yeX0gdG8gYmVjb21lIHRoZSByb290IGRpcmVjdG9yeSwgb3Igc3RhcnRp
bmcgcG9pbnQsIGZvciBwYXRoIG5hbWUgc2VhcmNoZXMgYmVnaW5uaW5nIHdpdGggQGZpbGV7
Jy8nfSBvciBAZmlsZXsnXCd9LiBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBpcyB1
bmFmZmVjdGVkLg0KKyANCisgQnkgZGVmYXVsdCwgQGNvZGV7Y2hyb290fSBpcyBzZXQgdG8g
VW5peCBjb21wYXRpYmlsaXR5IG9yIHJlc3RyaWN0aXZlIG1vZGUuIEluIHRoaXMgbW9kZSwg
QHZhcntuZXdfcm9vdF9kaXJlY3Rvcnl9IGNhbiBiZSBhbnkgZXhpc3RpbmcgZGlyZWN0b3J5
LiBJbiBzdWNjZXNzaXZlIGNhbGxzLCBAdmFye25ld19yb290X2RpcmVjdG9yeX0gbXVzdCBl
eGlzdCBhbmQgYmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcm9vdCBkaXJlY3RvcnksIG9y
IGVsc2UgdGhlIGNhbGwgZmFpbHMuIFRoZSBvbmx5IHdheSB0byByZXNldCB0aGUgcm9vdCBk
aXJlY3RvcnkgaXMgd2l0aCBhIGNhbGwgdG8gQHhyZWZ7ZmNocm9vdH0uIFRoaXMgbWltaWNz
IHRoZSBiZWhhdmlvciBvZiBVbml4IHZlcnNpb25zIG9mIEBjb2Rle2Nocm9vdH0uDQorIA0K
KyBUaGUgb3RoZXIgYXZhaWxhYmxlIG1vZGUgaXMgQmFzaCBjb21wYXRpYmlsaXR5IG9yIHBl
cm1pc3NpdmUgbW9kZS4gSW4gdGhpcyBtb2RlLCBAdmFye25ld19yb290X2RpcmVjdG9yeX0g
bXVzdCBzdGlsbCBleGlzdCwgYnV0IGl0IG5lZWQgbm90IGJlIHJlbGF0aXZlIHRvIHRoZSBj
dXJyZW50IHJvb3QgbGlrZSBpbiByZXN0cmljdGl2ZSBtb2RlLiBUaGlzIG1pbWljcyB0aGUg
YmVoYXZpb3Igb2YgdGhlIEBjb2Rle1NZU1JPT1R9IGVudmlyb25tZW50IHZhcmlhYmxlIGlu
IHRoZSBESkdQUCBwb3J0IG9mIEJhc2ggMS4xNDcuDQorIA0KKyBUbyBhbGxvdyBhIGNoaWxk
IHByb2dyYW0gdG8gaW5oZXJpdCB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgaXRzIHBhcmVudCwg
QGNvZGV7Y2hkaXJ9IHNldHMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBAY29kZXtST09U
fSBhbmQgQGNvZGV7Q0hST09UX1VOSVh9LiBJZiBzZXQsIEBjb2Rle1JPT1R9IHdpbGwgY29u
dGFpbiB0aGUgcm9vdCBkaXJlY3RvcnkuIElmIEB2YXJ7Q0hST09UX1VOSVgpIGlzIG5vdCBz
ZXQgb3IgaXMgc2V0IHRvICdZJywgQGNvZGV7Y2hyb290fSBpcyBzZXQgdG8gZW5mb3JjZSB0
aGUgcmVzdHJpY3RpdmUgVW5peCBiZWhhdmlvci4gSWYgQGNvZGV7Q0hST09UX1VOSVh9IGlz
IHNldCB0byBhbnl0aGluZyBvdGhlciB0aGFuICdZJywgdGhlbiBAY29kZXtjaHJvb3R9IGlz
IHNldCB0byBhbGxvdyB0aGUgcGVybWlzc2l2ZSBiZWhhdmlvci4gQGNvZGV7U1lTUk9PVH0s
IGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHVzZWQgYnkgdGhlIERKR1BQIHBvcnQgb2YgQmFz
aCAxLjE0NywgaXMgc3VwcG9ydGVkIGluIHRoZSBpbnRlcmVzdCBvZiBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5IGJ1dCBpdHMgdXNlIGlzIGRpc2NvdXJhZ2VkLiBJZiBAY29kZXtST09UfSBp
cyBub3Qgc2V0LCBidXQgQGNvZGV7U1lTUk9PVH0gaXMsIHRoZW4gQGNvZGV7U1lTUk9PVH0g
aXMgdXNlZCB0byBzZXQgdGhlIHJvb3QgZGlyZWN0b3J5LCBhbmQgQGNvZGV7Y2hyb290fSBp
cyBzZXQgdG8gcGVybWlzc2l2ZSBtb2RlLCBhbmQgQGNvZGV7Q0hST09UX1VOSVh9IGlzIGln
bm9yZWQuDQorIA0KKyBUaGUgZ2xvYmFsIHZhcmlhYmxlIEBjb2Rle19fY2hyb290X2ZsYWdz
fSBjYW4gYmUgc2V0IHRvIGluY2x1ZGUgdGhlDQorIGZvbGxvd2luZyB2YWx1ZXMgdG8gY29u
dHJvbCB0aGUgb3BlcmF0aW9uIG9mIEBjb2Rle2Nocm9vdH06DQorIA0KKyBAdGFibGUgQGNv
ZGUNCisgDQorIEBpdGVtIF9fQ0hST09UX1VOSVhfTU9ERV9GTEFHDQorIA0KKyBJZiBzZXQs
IEBjb2Rle2Nocm9vdH0gaXMgaW4gVW5peCBjb21wYXRpYmlsaXR5IG9yIHJlc3RyaWN0aXZl
IG1vZGUuIElmIG5vdCBzZXQsIEBjb2Rle2Nocm9vdH0gaXMgaW4gQmFzaCBjb21wYXRpYmls
aXR5IG9yIHBlcm1pc3NpdmUgbW9kZS4gU2VlIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiBmb3Ig
aG93IHRoZXNlIHR3byBtb2RlcyBkaWZmZXIuDQorIA0KKyBAZW5kIHRhYmxlDQorIA0KKyBA
c3ViaGVhZGluZyBSZXR1cm4gVmFsdWUNCisgDQorIFplcm8gaWYgc3VjY2Vzc2Z1bCwgZWxz
ZSBub256ZXJvIGFuZCBAY29kZXtlcnJub30gc2V0IGlmIGVycm9yLg0KKyANCisgQHN1Ymhl
YWRpbmcgUG9ydGFiaWxpdHkNCisgDQorIEBwb3J0LW5vdGUgVGhlIHZhcmlhYmxlIEBjb2Rl
e19fY2hyb290X2ZsYWdzfSBpcyBESkdQUCBzcGVjaWZpYy4NCisgQHBvcnRhYmlsaXR5ICFh
bnNpLCAhcG9zaXgNCisgDQorIEBzdWJoZWFkaW5nIEV4YW1wbGUNCisgDQorIEBleGFtcGxl
DQorIEluIG91ciBleGFtcGxlcywgYXNzdW1lICdjOi9kamdwcCcgYW5kICdjOi9kamdwcC9i
aW4vZ2NjLmV4ZScgZXhpc3QuDQorIA0KKyBBbiBleGFtcGxlIGZvciBVbml4IGNvbXBhdGli
aWxpdHkgb3IgcmVzdHJpY3RpdmUgbW9kZToNCisgDQorIGNocm9vdCgiYzovZGpncHAiKTsN
CisgDQorIC8qIFRoaXMgY2FsbCB3aWxsIG5vdCBzdWNjZWVkLiBSb290IHdpbGwgbm90IGJl
IGNoYW5nZWQuICovDQorIGNocm9vdCgiYzovIik7DQorIA0KKyAvKiBDaGVja3MgYzovZGpn
cHAvYmluL2djYy5leGUgKi8NCisgaWYgKGFjY2VzcygiL2Jpbi9nY2MuZXhlIiwgUl9PSykg
PT0gMCkNCisgICBwcmludGYoImdjYy5leGUgZm91bmQiKTsgIA0KKyANCisgLyogU3VjY2Vl
ZHMgYmVjYXVzZSAnYzovZGpncHAvYmluJyBpcyByZWxhdGl2ZSB0byAnYzovZGpncHAnLg0K
KyAgICBQYXNzaW5nIGluICcvYmluJyB3b3VsZCBoYXZlIGFsc28gd29ya2VkLiAqLw0KKyBj
aHJvb3QoImM6L2RqZ3BwL2JpbiIpOw0KKyANCisgQW4gZXhhbXBsZSBmb3IgQmFzaCBjb21w
YXRpYmlsaXR5IG9yIHBlcm1pc3NpdmUgbW9kZToNCisgLyogRGlzYWJsZSBVbml4IGNvbXBh
dGliaWxpdHkgb3IgcmVzdHJpY3RpdmUgbW9kZS4gKi8NCisgX19jaHJvb3RfZmxhZ3MgPSAw
Ow0KKyANCisgY2hyb290KCJjOi9kamdwcCIpOw0KKyANCisgLyogVGhpcyB3aWxsIHN1Y2Nl
ZWQgc2luY2UgZGlyZWN0b3J5IG5lZWQgbm90IGJlIHJlbGF0aXZlDQorICAgIHRvICdjOi9k
amdwcCcgbGlrZSBpbiB0aGUgZmlyc3QgZXhhbXBsZS4gKi8NCisgY2hyb290KCJjOi8iKTsN
CisgDQorIGNocm9vdCgiZDovd2luZG93cyIpOw0KKyBAZW5kIGV4YW1wbGUNCisgDQoqKiog
c3JjL2xpYmMvY29tcGF0L3VuaXN0ZC9mY2hyb290LnR4aC5vcmlnCVN1biBGZWIgMjggMTQ6
MjQ6NTggMTk5OQ0KLS0tIHNyYy9saWJjL2NvbXBhdC91bmlzdGQvZmNocm9vdC50eGgJTW9u
IE1hciAgMSAxMDoxODoxOCAxOTk5DQoqKioqKioqKioqKioqKioNCioqKiAwICoqKioNCi0t
LSAxLDM0IC0tLS0NCisgQG5vZGUgZmNocm9vdCwgZmlsZSBzeXN0ZW0NCisgQHN1YmhlYWRp
bmcgU3ludGF4DQorIA0KKyBAZXhhbXBsZQ0KKyAjaW5jbHVkZSA8dW5pc3RkLmg+DQorIA0K
KyBpbnQgZmNocm9vdChpbnQgZmlsZV9oYW5kbGUpOw0KKyBAZW5kIGV4YW1wbGUNCisgDQor
IEBzdWJoZWFkaW5nIERlc2NyaXB0aW9uDQorIA0KKyBDbGVhcnMgdGhlIHJvb3QgZGlyZWN0
b3J5IHNldCBieSBhbnkgcHJldmlvdXMgY2FsbHMgdG8gQHhyZWZ7Y2hyb290fS4gIER1ZSB0
byB0aGUgZmFjdCB0aGF0IERPUyBkb2VzIG5vdCBhbGxvdyB5b3UgdG8gb2J0YWluIGEgZmls
ZSBoYW5kbGUgdG8gYSBkaXJlY3RvcnksIEB2YXJ7ZmlsZV9oYW5kbGV9IGlzIGlnbm9yZWQg
Zm9yIG5vbi1uZWdhdGl2ZSB2YWx1ZXMuIFRoaXMgZG9lcyBpbnRyb2R1Y2UgYW4gaW5jb21w
YXRpYmlsaXR5IHdpdGggVW5peC4gSG93ZXZlciwgc2luY2UgQGNvZGV7ZmNocm9vdH0gaW4g
VW5peCBpcyBndWFyYW50ZWVkIHRvIHN1Y2NlZWQgb25seSB3aGVuIGNoYW5naW5nIHRvIHRo
ZSBzeXN0ZW0gcm9vdCwgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcG9ydGFibGUgbW9zdCBv
ZiB0aGUgdGltZS4NCisgDQorIEBzdWJoZWFkaW5nIFJldHVybiBWYWx1ZQ0KKyANCisgQWx3
YXlzIHJldHVybnMgemVybyBmb3Igc3VjY2VzcywgdW5sZXNzIEB2YXJ7ZmlsZV9oYW5kbGV9
IGlzIGxlc3MgdGhhbiB6ZXJvLg0KKyANCisgQHN1YmhlYWRpbmcgUG9ydGFiaWxpdHkNCisg
DQorIEBwb3J0YWJpbGl0eSAhYW5zaSwgIXBvc2l4DQorIA0KKyBAc3ViaGVhZGluZyBFeGFt
cGxlDQorIA0KKyBAZXhhbXBsZQ0KKyBjaHJvb3QoImM6L2RqZ3BwIik7DQorIGlmIChhY2Nl
c3MoIi9iaW4vZ2NjLmV4ZSIsIFJfT0spIDwgMCkNCisgICBmcHJpbnRmKHN0ZGVyciwgImdj
Yy5leGUgbm90IGZvdW5kIik7ICANCisgDQorIGZjaHJvb3QoMSk7DQorIA0KKyBpZiAoYWNj
ZXNzKCIvYmluL2djYy5leGUiLCBSX09LKSA8IDApDQorICAgZnByaW50ZihzdGRlcnIsICJn
Y2MuZXhlIG5vdCBmb3VuZCIpOyAgDQorIEBlbmQgZXhhbXBsZQ0KKyANCioqKiBzcmMvbGli
Yy9jcnQwL2Mxcm9vdC5jLm9yaWcJU3VuIEZlYiAyOCAxNDowODoyMiAxOTk5DQotLS0gc3Jj
L2xpYmMvY3J0MC9jMXJvb3QuYwlNb24gTWFyICAxIDEzOjA1OjE2IDE5OTkNCioqKioqKioq
KioqKioqKg0KKioqIDAgKioqKg0KLS0tIDEsNjkgLS0tLQ0KKyAjaW5jbHVkZSA8bGliYy9y
b290Lmg+DQorICNpbmNsdWRlIDxsaWJjL2Jzcy5oPg0KKyAjaW5jbHVkZSA8c3RkbGliLmg+
DQorICNpbmNsdWRlIDx1bmlzdGQuaD4NCisgDQorIC8qIEhlcmUgaXMgd2UgY2hlY2sgZm9y
IHRocmVlIGVudmlyb25tZW50YWwgdmFyaWFibGVzDQorICAgIHRoYXQgbWF5IHJlc3VsdCBp
biBhIGNhbGwgdG8gY2hyb290KCk6DQorICAgIFJPT1QgICAgICAgIC0gdGhlIHJvb3QgcGF0
aC4gQ2FuIGJlIHNldCBtYW51YWxseSBvciBieSBjaHJvb3QoKS4NCisgICAgQ0hST09UX1VO
SVggLSBZIGlmIGNocm9vdCBpcyB0byBlbXVsYXRlIHRoZSByZXN0cmljdGl2ZQ0KKyAgICAg
ICAgICAgICAgICAgIGJlaGF2aW9yIG9mIHRoZSBVbml4IGltcGxlbWVudGF0aW9ucy4NCisg
CQkgQW55IG90aGVyIHZhbHVlIHRvIHNlbGVjdCB0aGUgbm9uLXJlc3RyaWN0aXZlDQorIAkJ
IGJlaGF2aW9yIGltcGxlbWVudGVkIGJ5IEJhc2ggMS4xNDcuDQorICAgIFNZU1JPT1QgICAg
IC0gQmFzaCAxLjE0NyBzZXRzIHRoaXMgdmFyaWFibGUgdG8gdGhlIGRpcmVjdG9yeSB0bw0K
KyAgICAgICAgICAgICAgICAgIHVzZSB3aGVuIHNlYXJjaGluZyBmb3IgcGF0aCBuYW1lcyBi
ZWdpbm5pbmcNCisgCQkgd2l0aCAnLycgb3IgJ1wnLiBJZiBST09UIGlzIHNldCwgdGhpcyB2
YXJpYWJsZQ0KKyAJCSBpcyBpZ25vcmVkLiBJZiBST09UIGlzIG5vdCBzZXQgYW5kIFNZU1JP
T1QgZG9lcw0KKyAJCSBjb250YWluIGEgcGF0aCwgdGhlbiBjaHJvb3QoKSBlbXVsYXRlcyB0
aGUNCisgCQkgbm9uLXJlc3RyaWN0aXZlIGJlaGF2aW9yIG9mIEJhc2ggMS4xNDcgcmVnYXJk
bGVzcw0KKyAJCSBvZiB0aGUgdmFsdWUgb2YgQ0hST09UX1VOSVguIFRoaXMgdmFyaWFibGUg
aXMgY2hlY2tlZA0KKyAJCSB0byBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdp
dGggQmFzaCAxLjE0Ny4NCisgCQkgU29tZWRheSwgdGhpcyB2YXJpYWJsZSB3aWxsIGJlIGNv
bXBsZXRlbHkgaWdub3JlZA0KKyAJCSBvbmNlIGEgREpHUFAgcG9ydCBvZiBCYXNoIDIgaGFz
IGJlZW4gcmVsZWFzZWQNCisgCQkgYW5kIGlzIGluIHdpZGUgdXNlLiAqLw0KKyANCisgDQor
IHN0YXRpYyBpbnQgX19zZXR1cF9yb290X2Jzc19jb3VudCA9IC0xOw0KKyANCisgdm9pZA0K
KyBfX2NydDBfc2V0dXBfY2hyb290KCkNCisgew0KKyAgIGNoYXIgKnJvb3QgPSBnZXRlbnYo
Uk9PVF9FTlYpOw0KKyAgIGNoYXIgKnN5c3Jvb3QgPSAocm9vdCA/IE5VTEwgOiBnZXRlbnYo
IlNZU1JPT1QiKSk7DQorICAgY2hhciAqdW5peF9tb2RlID0gKCFzeXNyb290ID8gZ2V0ZW52
KENIUk9PVF9FTlYpIDogTlVMTCk7DQorICAgaW50IHJldF9jb2RlOw0KKyANCisgICBpZiAo
dW5peF9tb2RlKQ0KKyAgIHsNCisgICAgIGlmICgqdW5peF9tb2RlID09ICdZJyB8fCAqdW5p
eF9tb2RlID09ICd5JykNCisgICAgICAgX19jaHJvb3RfZmxhZ3MgPSBfX0NIUk9PVF9VTklY
X01PREVfRkxBRzsNCisgICAgIGVsc2UNCisgICAgICAgX19jaHJvb3RfZmxhZ3MgPSAwOw0K
KyAgIH0NCisgICBlbHNlIGlmIChzeXNyb290KQ0KKyAgICAgX19jaHJvb3RfZmxhZ3MgPSAw
Ow0KKyANCisgICBpZiAoc3lzcm9vdCkNCisgICAgIHJvb3QgPSBzeXNyb290Ow0KKyANCisg
ICBpZiAocm9vdCkNCisgICB7DQorICAgICBfX3NldHVwX3Jvb3RfYnNzX2NvdW50ID0gX19i
c3NfY291bnQ7DQorICAgICAvKiBBYm9ydHMgaWYgY2FsbCB0byBjaHJvb3QoKSBmYWlscy4g
Ki8NCisgICAgIGlmIChjaHJvb3Qocm9vdCkgPCAwKQ0KKyAgICAgew0KKyAvKiAgICAgIGZw
cmludGYoc3RkZXJyLCAiQ2FsbCB0byBjaHJvb3QoJyVzJykgZmFpbGVkIGluIF9fY3J0MF9z
ZXR1cF9jaHJvb3QoKVxuIiwgcm9vdCk7ICovDQorICAgICAgIGFib3J0KCk7DQorICAgICB9
DQorICAgfQ0KKyAgIC8qIElmIHdlIGhhdmUgYmVlbiByZXN0YXJ0ZWQsIGFuZCBST09UIG9y
IFNZU1JPT1Qgd2FzIG5vdCBkZWZpbmVkLA0KKyAgICAgIHRoZW4gcmVzZXQgdGhlIGRlZmF1
bHRzLiAqLw0KKyAgIGVsc2UgaWYgKF9fc2V0dXBfcm9vdF9ic3NfY291bnQgIT0gX19ic3Nf
Y291bnQpDQorICAgew0KKyAgICAgX19kamdwcF9yb290WzBdID0gJ1wwJzsNCisgICAgIF9f
ZGpncHBfcm9vdF9sZW4gPSAwOw0KKyAgICAgX19jaHJvb3RfZmxhZ3MgPSBfX0NIUk9PVF9V
TklYX01PREVfRkxBRzsNCisgICAgIF9fc2V0dXBfcm9vdF9ic3NfY291bnQgPSBfX2Jzc19j
b3VudDsNCisgICB9DQorIH0NCisgDQo=

--Message-Boundary-22211--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019