Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-WebMail-UserID: neufeld Date: Wed, 9 Feb 2005 19:48:42 -0700 From: Chad Neufeld To: cygwin AT cygwin DOT com X-EXP32-SerialNo: 00002455 Subject: scponly for chrooted sftp server in cygwin Message-ID: <42122CD7@webmail.ualberta.ca> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="mime-boundary-interchange-42122cd6" --mime-boundary-interchange-42122cd6 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Hi, I am attempting to setup and sftp server on a windows XP pro machine. I have the latest cygwin and openssh files from cygwin.com. I downloaded the scponly source files and am now attempting to compile them. I get the following error message: $ make gcc -g -O2 -I. -I. -DHAVE_CONFIG_H -DDEBUGFILE='"/usr/local/etc/scponly/debuglev el"' -o scponly.o -c scponly.c gcc -g -O2 -I. -I. -DHAVE_CONFIG_H -DDEBUGFILE='"/usr/local/etc/scponly/debuglev el"' -o helper.o -c helper.c helper.c:12:36: libgen.h: No such file or directory helper.c: In function `substitute_known_path': helper.c:174: warning: passing arg 1 of `strdup' makes pointer from integer with out a cast helper.c:179: warning: passing arg 1 of `strcmp' makes pointer from integer with out a cast make: *** [helper.o] Error 1 I have only found a single post http://www.cygwin.com/ml/cygwin/2004-11/msg01184.html that says "scponly compiles easily under the new cygwin releases with a few modifications to the makefile," but it doesn't say what those are. I have included the configure utility screen output, the makefile, and helper.c file. I would greatly appreciate any help on this. Thanks, Chad --mime-boundary-interchange-42122cd6 Content-Type: text/plain; name="Makefile.txt" Content-disposition: attachment; filename="Makefile.txt" Content-Transfer-Encoding: BASE64 IyBBdXRvY29uZmVkIHN0dWZmCnNyY2RpcgkJID0gLgpwcmVmaXgJCTo9IC91 c3IvbG9jYWwKZXhlY19wcmVmaXgJOj0gJHtwcmVmaXh9CmJpbmRpcgkJID0g JHtleGVjX3ByZWZpeH0vYmluCnNiaW5kaXIJCSA9ICR7ZXhlY19wcmVmaXh9 L3NiaW4KbWFuZGlyCQkgPSAke3ByZWZpeH0vbWFuCkNGTEFHUwkJID0gLWcg LU8yIC1JJChzcmNkaXIpIC1JLgpJTlNUQUxMCQkgPSAvdXNyL2Jpbi9pbnN0 YWxsIC1jCkNDCQkgPSBnY2MKQ0hST09URURfTkFNRSAgICA9IHNjcG9ubHlj CkNPTkZESVIgICAgICAgICA6PSAke3ByZWZpeH0vZXRjL3NjcG9ubHkKREVC VUdGSUxFICAgICAgIDo9ICR7Q09ORkRJUn0vZGVidWdsZXZlbApERUZTCQk6 PSAtREhBVkVfQ09ORklHX0ggLURERUJVR0ZJTEU9JyIke0RFQlVHRklMRX0i JwpMTl9TCQkgPSBsbiAtcwoKCmFsbDogc2Nwb25seSBncm91cHMKCmNsZWFu OgoJcm0gLWYgKi5vIHNjcG9ubHkgKn4gZGVidWdsZXZlbCAke0NIUk9PVEVE X05BTUV9IGdyb3VwcwoKbG92ZTogY2xlYW4gYWxsCgpzY3Bvbmx5OiBzY3Bv bmx5Lm8gaGVscGVyLm8KCSR7Q0N9ICR7Q0ZMQUdTfSAke0RFRlN9IC1vICRA IHNjcG9ubHkubyBoZWxwZXIubwoKZ3JvdXBzOiBncm91cHMuYwoJJHtDQ30g JHtDRkxBR1N9ICR7REVGU30gLW8gJEAgJDwKCnNjcG9ubHkubzogc2Nwb25s eS5jIGNvbmZpZy5oIHNjcG9ubHkuaAoJJHtDQ30gJHtDRkxBR1N9ICR7REVG U30gLW8gJEAgLWMgJDwKCmhlbHBlci5vOiBoZWxwZXIuYyBjb25maWcuaCBz Y3Bvbmx5LmgKCSR7Q0N9ICR7Q0ZMQUdTfSAke0RFRlN9IC1vICRAIC1jICQ8 CgppbnN0YWxsOiBzY3Bvbmx5IGRlYnVnbGV2ZWwgc2Nwb25seS44Cgkke0lO U1RBTEx9IC1kICR7YmluZGlyfQoJJHtJTlNUQUxMfSAtZCAke21hbmRpcn0v bWFuOAoJJHtJTlNUQUxMfSAtZCAke0NPTkZESVJ9Cgkke0lOU1RBTEx9IC1v IDAgLWcgMCBzY3Bvbmx5ICR7YmluZGlyfS9zY3Bvbmx5Cgkke0lOU1RBTEx9 IC1vIDAgLWcgMCAtbSAwNjQ0IHNjcG9ubHkuOCAke21hbmRpcn0vbWFuOC9z Y3Bvbmx5LjgKCSR7SU5TVEFMTH0gLW8gMCAtZyAwIC1tIDA2NDQgZGVidWds ZXZlbCAke0RFQlVHRklMRX0KCWlmIHRlc3QgIngke0NIUk9PVEVEX05BTUV9 IiAhPSAieCI7IHRoZW4JCQlcCgkJJHtJTlNUQUxMfSAtZCAke3NiaW5kaXJ9 OwkJCQlcCgkJcm0gLWYgJHtzYmluZGlyfS8ke0NIUk9PVEVEX05BTUV9OwkJ CVwKCQljcCBzY3Bvbmx5ICR7Q0hST09URURfTkFNRX07CQkJCVwKCQkke0lO U1RBTEx9IC1vIDAgLWcgMCAtbSA0NzU1ICR7Q0hST09URURfTkFNRX0gJHtz YmluZGlyfS8ke0NIUk9PVEVEX05BTUV9OwlcCglmaQoKZGVidWdsZXZlbDoK CWVjaG8gIjAiID4gJEAKCmphaWw6CWluc3RhbGwKCWNobW9kIHUreCAuL3Nl dHVwX2Nocm9vdC5zaAoJLi9zZXR1cF9jaHJvb3Quc2gKCmRpc3RjbGVhbjog Y2xlYW4KCXJtIC1mciBhdXRvbTR0ZS5jYWNoZQoJcm0gLWYgY29uZmlnLmgg Y29uZmlnLmxvZyBjb25maWcuc3RhdHVzIE1ha2VmaWxlIHNldHVwX2Nocm9v dC5zaAoKbWFpbnRhaW5lci1jbGVhbjogZGlzdGNsZWFuCglybSAtZiBjb25m aWd1cmUgCgoK --mime-boundary-interchange-42122cd6 Content-Type: text/plain; name="configure_output.txt" Content-disposition: attachment; filename="configure_output.txt" Content-Transfer-Encoding: 7bit $ ./configure --enable-chrooted-binary checking build system type... i686-pc-cygwin checking host system type... i686-pc-cygwin checking for gcc... gcc checking for C compiler default output... a.exe checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... .exe checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking for cut... /usr/bin/cut checking for grep... /usr/bin/grep checking for sort... /usr/bin/sort checking for ldd... no checking for useradd... no checking for chown... /usr/bin/chown checking for chmod... /usr/bin/chmod checking for dirname... /usr/bin/dirname checking for id... /usr/bin/id checking for pw... no checking for rm... /usr/bin/rm checking for pwd_mkdb... no configure: enabling core WinSCP and Vanilla SCP binaries... checking for sftp-server... /usr/sbin/sftp-server checking for ls... /bin/ls checking for scp... /bin/scp checking for rm... /bin/rm checking for ln... /bin/ln checking for mv... /bin/mv checking for chmod... /bin/chmod checking for chown... /bin/chown checking for chgrp... /bin/chgrp checking for mkdir... /bin/mkdir checking for rmdir... /bin/rmdir configure: enabling WinSCP compatability... checking for pwd... /bin/pwd checking for groups... /bin/groups checking for id... /bin/id checking for echo... /bin/echo configure: enabling SFTP compatability... checking for sftp-server... (cached) /usr/sbin/sftp-server checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking wordexp.h usability... no checking wordexp.h presence... no checking for wordexp.h... no checking glob.h usability... yes checking glob.h presence... yes checking for glob.h... yes checking libgen.h usability... no checking libgen.h presence... no checking for libgen.h... no checking for gcc option to accept ANSI C... none needed checking for an ANSI C-conforming const... yes checking for inline... inline checking for working alloca.h... yes checking for alloca... yes checking for malloc... yes checking for atexit... yes checking for bzero... yes checking for strchr... yes checking for strerror... yes checking for glob... yes checking for wordexp... no checking for strspn... yes checking for basename... no configure: creating ./config.status config.status: creating Makefile config.status: creating config.h --mime-boundary-interchange-42122cd6 Content-Type: text/plain; name="helper.c.txt" Content-disposition: attachment; filename="helper.c.txt" Content-Transfer-Encoding: BASE64 LyoKICoJaGVscGVyIGZ1bmN0aW9ucyBmb3Igc2Nwb25seQogKi8KI2luY2x1 ZGUgPHN0ZGlvLmg+CS8vIGlvCiNpbmNsdWRlIDxzdHJpbmcuaD4JLy8gZm9y IHN0cioKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgkvLyBmb3Igc3RhdCwgZ2V0 cHd1aWQKI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CS8vIGZvciBzdGF0CiNpbmNs dWRlIDx1bmlzdGQuaD4JLy8gZm9yIGV4aXQsIGFjY2VzcywgZ2V0cHd1aWQs IGV4ZWN2ZQojaW5jbHVkZSA8ZXJybm8uaD4JLy8gZm9yIGRlYnVnZ2luZwoj aW5jbHVkZSA8cHdkLmg+CS8vIHRvIGdldCB1c2VybmFtZSBmb3IgY29uZmln IHBhcnNpbmcKI2luY2x1ZGUgPHRpbWUuaD4JLy8gdGltZQojaW5jbHVkZSA8 bGliZ2VuLmg+CS8vIGJhc2VuYW1lCiNpbmNsdWRlIDxzdGRsaWIuaD4JLy8g cmVhbGxvYwojaW5jbHVkZSA8c3lzbG9nLmg+CiNpbmNsdWRlICJzY3Bvbmx5 LmgiCiNpbmNsdWRlICJjb25maWcuaCIKCiNpZmRlZiBIQVZFX0dMT0IKI2lu Y2x1ZGUgPGdsb2IuaD4JLy8gZm9yIGdsb2IoKQojZWxzZQojaWZkZWYgSEFW RV9XT1JERVhQCiNpbmNsdWRlIDx3b3JkZXhwLmg+CS8vIGZvciB3b3JkZXhw KCkKI2VuZGlmCiNlbmRpZgoKI2RlZmluZSBNQVgoeCx5KQkoICggeCA+IHkg KSA/IHggOiB5ICkKCmV4dGVybiBpbnQgZGVidWdsZXZlbDsKZXh0ZXJuIGNo YXIgdXNlcm5hbWVbTUFYX1VTRVJOQU1FXTsKZXh0ZXJuIGNoYXIgaG9tZWRp cltGSUxFTkFNRV9NQVhdOwpleHRlcm4gY21kX3QgY29tbWFuZHNbXTsKZXh0 ZXJuIGNtZF9hcmdfdCBkYW5nZXJvdXNfYXJnc1tdOwoKI2lmZGVmIFVOSVhf Q09NUEFUCmNoYXIqIHNvbGFyaXNfbmVlZHNfc3Ryc2VwKGNoYXIqKiBzdHIs IGNoYXIqIGRlbGltcykKewogICAgY2hhciogdG1wc3RyOwoKICAgIGlmICgq c3RyPT1OVUxMKSB7CiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICB9CgogICAg dG1wc3RyPSpzdHI7CiAgICB3aGlsZSAoKipzdHIhPSdcMCcpIHsKICAgICAg ICBpZiAoc3RyY2hyKGRlbGltcywqKnN0cikhPU5VTEwpIHsKICAgICAgICAg ICAgKipzdHI9J1wwJzsKICAgICAgICAgICAgKCpzdHIpKys7CiAgICAgICAg ICAgIHJldHVybiB0bXBzdHI7CiAgICAgICAgfQogICAgICAgICgqc3RyKSsr OwogICAgfQogICAgKnN0cj1OVUxMOwogICAgcmV0dXJuIHRtcHN0cjsKfQoj ZW5kaWYKCnZvaWQgZGlzY2FyZF92ZWN0b3IoY2hhciAqKmF2KQp7CgljaGFy ICoqdG1wcHRyPWF2OwkKCXdoaWxlICgqdG1wcHRyIT1OVUxMKQoJCWZyZWUo KnRtcHB0cisrKTsKCWZyZWUoYXYpOwp9CgpjaGFyICpmbGF0dGVuX3ZlY3Rv cihjaGFyICoqYXYpCnsKCWNoYXIgKip0bXBwdHI9YXY7CQoJY2hhciAqdGVt cD1OVUxMOwoJY2hhciAqY3JwdHI9TlVMTDsKCWNoYXIgKm91dGJ1Zj1OVUxM OwoJaW50IGxlbj0wLG5ld2xlbj0wOwoKCXdoaWxlICgqdG1wcHRyIT1OVUxM KQoJewoJCWlmIChOVUxMICE9IChjcnB0cj1zdHJjaHIoKnRtcHB0ciwgJ1xu JykpKQoJCXsKCQkJKmNycHRyPSdcMCc7CgkJfQoJCWlmIChvdXRidWYhPU5V TEwpCgkJewoJCQlsZW4gPSBzdHJsZW4ob3V0YnVmKTsKCQkJbmV3bGVuPWxl biArIHN0cmxlbigqdG1wcHRyKSsxOwoJCX0KCQllbHNlCgkJewoJCQlsZW4g PSAwOwoJCQluZXdsZW49c3RybGVuKCp0bXBwdHIpOwoJCX0KCQlpZiAoTlVM TCA9PSAodGVtcCA9IHJlYWxsb2MgKG91dGJ1ZiwgbmV3bGVuICsgMSkpKQoJ CXsKCQkJcGVycm9yKCJyZWFsbG9jIik7CgkJCWlmIChvdXRidWYpCgkJCQlm cmVlKG91dGJ1Zik7CgkJCWV4aXQoRVhJVF9GQUlMVVJFKTsKCQl9CgkJb3V0 YnVmPXRlbXA7CgkJdGVtcD1OVUxMOwoJCWlmIChsZW4pCgkJewoJCQlvdXRi dWZbbGVuXT0nICc7CgkJCXN0cmNweSgmb3V0YnVmW2xlbisxXSwqdG1wcHRy KTsJCgkJfQoJCWVsc2UKCQkJc3RyY3B5KG91dGJ1ZiwqdG1wcHRyKTsJCgkJ KnRtcHB0cisrOwoJfQoJcmV0dXJuIChvdXRidWYpOwp9CgovKgogKglzaW5j ZSBzb21lIHByb2dyYW1zIHN1cHBvcnQgaW52b2tpbmcgb3RoZXIgcHJvZ3Jh bXMgZm9yIHRoZWlyIGVuY3J5cHRpb24KICoJKGRyb3BpbmdzIHRvIHJlcGxh Y2Ugc3NoKSwgd2UgbXVzdCByZWZ1c2UgdG8gc3VwcG9ydCB0aGVzZSBhcmd1 bWVudHMKICoKICoJUkVUVVJOOiAxIG1lYW5zIHJlamVjdCB0aGlzIGNvbW1h bmQsIDAgbWVhbnMgaXQgaXMgc2FmZS4KICovCmludCBjaGVja19kYW5nZXJv dXNfYXJncyhjaGFyICoqYXYpCnsKCWNtZF9hcmdfdAkqY21kYXJnPWRhbmdl cm91c19hcmdzOwoJY2hhcgkJKip0bXBwdHI9YXY7CgoJd2hpbGUgKGNtZGFy ZyAhPSBOVUxMKQoJewoJCWlmIChjbWRhcmctPm5hbWUgPT0gTlVMTCkKCQkJ cmV0dXJuIDA7CgkJaWYgKGV4YWN0X21hdGNoKGNtZGFyZy0+bmFtZSxhdlsw XSkpCgkJewoJCQkvKgoJCQkgKgl0aGUgY29tbWFuZCBtYXRjaGVzIG9uZSBv ZiBvdXIgZGFuZ2Vyb3VzIGNvbW1hbmRzCgkJCSAqCWNoZWNrIHRoZSByZXN0 IG9mIHRoZSB2ZWN0b3IgZm9yIGRhbmdlcm91cyBjb21tYW5kCgkJCSAqCWxp bmUgYXJndW1lbnRzCgkJCSAqLwoJCQl0bXBwdHI9YXY7CgkJCSp0bXBwdHIr KzsKCQkJd2hpbGUgKCp0bXBwdHIhPU5VTEwpCgkJCXsKCQkJCWlmKGV4YWN0 X21hdGNoKCp0bXBwdHIsIGNtZGFyZy0+YmFkYXJnKSkKCQkJCXsKCQkJCQlz eXNsb2coTE9HX0VSUiwgIiVzIGlzIG5vdCBwZXJtaXR0ZWQgZm9yIHVzZSB3 aXRoICVzICglcykpIiwgCgkJCQkJCWNtZGFyZy0+YmFkYXJnLCBjbWRhcmct Pm5hbWUsIGxvZ3N0YW1wKCkpOwoJCQkJCXJldHVybiAxOwoJCQkJfQoJCQkJ KnRtcHB0cisrOwoJCQl9CgkJfQoJCWNtZGFyZysrOwoJfQoJcmV0dXJuIDA7 Cn0KCmludCB2YWxpZF9hcmdfdmVjdG9yKGNoYXIgKiphdikKewoJY21kX3QJ KmNtZD1jb21tYW5kczsKCgl3aGlsZSAoY21kICE9IE5VTEwpCgl7CgkJaWYg KGNtZC0+bmFtZSA9PSBOVUxMKQoJCQlyZXR1cm4gMDsKCQlpZiAoZXhhY3Rf bWF0Y2goY21kLT5uYW1lLGF2WzBdKSkKCQl7CgkJCWlmICgoY21kLT5hcmdm bGFnID09IDApICYmIChhdlsxXSE9TlVMTCkpCgkJCXsKCQkJCXJldHVybiAw OwoJCQl9CgkJCXJldHVybiAxOwoJCX0KCQljbWQrKzsKCX0KCXJldHVybiAw Owp9CgpjaGFyICpzdWJzdGl0dXRlX2tub3duX3BhdGgoY2hhciAqcmVxdWVz dCkKewoJY21kX3QJKmNtZD1jb21tYW5kczsKCWNoYXIgKnN0cmlwcGVkX3Jl cT1zdHJkdXAoYmFzZW5hbWUocmVxdWVzdCkpOwoJd2hpbGUgKGNtZCAhPSBO VUxMKQoJewoJCWlmIChjbWQtPm5hbWUgPT0gTlVMTCkKCQkJYnJlYWs7CgkJ aWYgKGV4YWN0X21hdGNoKGJhc2VuYW1lKGNtZC0+bmFtZSksc3RyaXBwZWRf cmVxKSkKCQl7CgkJCWZyZWUoc3RyaXBwZWRfcmVxKTsgLy9kaXNjYXJkIG9s ZCBwYXRobmFtZQoJCQlyZXR1cm4gKHN0cmR1cChjbWQtPm5hbWUpKTsKCQl9 CgkJY21kKys7Cgl9CglyZXR1cm4gKHN0cmlwcGVkX3JlcSk7Cn0KCmNoYXIg KipidWlsZF9hcmdfdmVjdG9yKGNoYXIgKnJlcXVlc3QpCnsKCS8qCgkgKiAg CWkgc3RyZHVwIHZlY3RvciBlbGVtZW50cyBzbyBpIGtub3cgdGhleSBhcmUK CSAqIAltaW5lIHRvIGZyZWUgbGF0ZXIuCgkgKi8KCWNoYXIgKiphcCwgKmFy Z3ZbTUFYX0FSR0NdLCAqaW5wdXRzdHJpbmcsICp0bXBzdHJpbmcsICpmcmVl bWU7CgljaGFyICoqYXAyLCoqYXY9KGNoYXIgKiopbWFsbG9jKE1BWF9BUkdD ICogKHNpemVvZihjaGFyICopKSk7CgoJYXA9YXJndjsKCWZyZWVtZT1pbnB1 dHN0cmluZz1zdHJkdXAocmVxdWVzdCk7IC8vIG1ha2UgYSBsb2NhbCBjb3B5 IAoKICAgICAgICB3aGlsZSAoYXAgPCAmYXJndlsoTUFYX0FSR0MtMSldKSAK CXsKCQlpZiAoaW5wdXRzdHJpbmcgJiYgKCppbnB1dHN0cmluZz09JyInKSkK CQl7CgkJCWlmIChOVUxMICE9ICh0bXBzdHJpbmc9c3RyY2hyKChpbnB1dHN0 cmluZysxKSwnIicpKSkKCQkJewoJCQkJKnRtcHN0cmluZysrPSdcMCc7CgkJ CQkqYXA9KGlucHV0c3RyaW5nKzEpOwoJCQkJCiNpZmRlZiBVTklYX0NPTVBB VAoJCQkJaWYgKHNvbGFyaXNfbmVlZHNfc3Ryc2VwKCZ0bXBzdHJpbmcsIFdI SVRFKSA9PSBOVUxMKQojZWxzZQoJCQkJaWYgKHN0cnNlcCgmdG1wc3RyaW5n LCBXSElURSkgPT0gTlVMTCkKI2VuZGlmCgkJCQkJYnJlYWs7CgkJCQlpbnB1 dHN0cmluZz10bXBzdHJpbmc7CgkJCiAgICAgICAJCQkgICAgICAgIGlmICgq KmFwICE9ICdcMCcpCiAgICAgICAgCQkJCWFwKys7CgkJCQljb250aW51ZTsK CQkJfQoJCX0KCQkKI2lmZGVmIFVOSVhfQ09NUEFUCiAgICAgICAgCWlmICgo KmFwID0gc29sYXJpc19uZWVkc19zdHJzZXAoJmlucHV0c3RyaW5nLCBXSElU RSkpID09IE5VTEwpCiNlbHNlCiAgICAgICAgCWlmICgoKmFwID0gc3Ryc2Vw KCZpbnB1dHN0cmluZywgV0hJVEUpKSA9PSBOVUxMKQojZW5kaWYKCQkJYnJl YWs7CgkJCiAgICAgICAgICAgICAgICBpZiAoKiphcCAhPSAnXDAnKQogICAg ICAgIAkJYXArKzsKICAgICAgICB9CiAgICAgICAgKmFwID0gTlVMTDsKCWFw PWFyZ3Y7CglhcDI9YXY7Cgl3aGlsZSAoKmFwICE9IE5VTEwpCgl7CgkJKmFw Mj1zdHJkdXAoKmFwKTsKCQlhcDIrKzsKCQlhcCsrOwoJfQogICAgICAgICph cDIgPSBOVUxMOwoJZnJlZShmcmVlbWUpOwoJCglyZXR1cm4gKGF2KTsJCn0K CmNoYXIgKipleHBhbmRfd2lsZGNhcmRzKGNoYXIgKiphdl9vbGQpCiNpZmRl ZiBIQVZFX0dMT0IKewoJY2hhcgkJKiphdl9uZXc9KGNoYXIgKiopbWFsbG9j KE1BWF9BUkdDICogKHNpemVvZihjaGFyICopKSk7CglnbG9iX3QgZzsKCWlu dCBjX29sZCxjX25ldyxjOwkvLyBhcmd1bWVudCBjb3VudGVycwojaWZkZWYg VU5JWF9DT01QQVQKCWludCBmbGFncyA9IEdMT0JfTk9DSEVDSzsKI2Vsc2UK CWludCBmbGFncyA9IEdMT0JfTk9DSEVDSyB8IEdMT0JfVElMREU7CiNlbmRp ZgoKCWcuZ2xfb2ZmcyA9IGNfbmV3ID0gY19vbGQgPSAwOwoKCXdoaWxlKGF2 X29sZFtjX29sZF0gIT0gTlVMTCApCgl7CiAgICAgICAgCWlmICgwID09IGds b2IoYXZfb2xkW2Nfb2xkKytdLGZsYWdzLE5VTEwsJmcpKQoJCXsKCQkJYz0w OwoJCQl3aGlsZSgoZy5nbF9wYXRodltjXSAhPSBOVUxMKSAmJiAoY19uZXcg PCAoTUFYX0FSR0MtMSkpKQoJCQkJYXZfbmV3W2NfbmV3KytdPXN0cmR1cChn LmdsX3BhdGh2W2MrK10pOwoJCQlnbG9iZnJlZSgmZyk7CgkJfQoJfQoJYXZf bmV3W2NfbmV3XT1OVUxMOwoJZGlzY2FyZF92ZWN0b3IoYXZfb2xkKTsKCXJl dHVybiBhdl9uZXc7Cn0KCiNlbHNlIAojaWZkZWYgSEFWRV9XT1JERVhQCnsK CXJldHVybiBOVUxMOwp9CiNlbmRpZgojZW5kaWYKCmludCBjbnRjaHIoY2hh ciAqYnVmLCBjaGFyIHgpCnsKCWludCBjb3VudD0wOwoJd2hpbGUgKCpidWYh PTApCgkJaWYgKCpidWYrKz09eCkKCQkJY291bnQrKzsKCXJldHVybiBjb3Vu dDsKfQoKY2hhciAqbG9nc3RhbXAgKCkKewoJLyogVGltZSBhbmQgcGlkIGFy ZSBoYW5kbGVkIGZvciB1cyBieSBzeXNsb2coMykuICovCglzdGF0aWMgY2hh ciByZXRfYnVmWzI1NV07CglzdGF0aWMgY29uc3QgY2hhciBiYWRfaXBbMTBd ID0gIm5vIGlwPyEiOwoJY2hhciAqaXBzdHJpbmcgPSBOVUxMOwoJCglpcHN0 cmluZyA9IChjaGFyICopZ2V0ZW52KCJTU0hfQ0xJRU5UIik7CglpZiAoIWlw c3RyaW5nKQoJCWlwc3RyaW5nID0gKGNoYXIgKilnZXRlbnYoIlNTSDJfQ0xJ RU5UIik7CglpZiAoIWlwc3RyaW5nKQoJCWlwc3RyaW5nID0gKGNoYXIgKili YWRfaXA7CglzbnByaW50ZihyZXRfYnVmLCBzaXplb2YocmV0X2J1ZiktMSwK CQkgInVzZXJuYW1lOiAlcyglZCksIElQL3BvcnQ6ICVzIiwgdXNlcm5hbWUs IGdldHVpZCgpLCBpcHN0cmluZyk7CglyZXR1cm4gcmV0X2J1ZjsKfQoKLyoK ICoJaWYgYmlnIGVuZHMgd2l0aCBzbWFsbCwgcmV0dXJuIGJpZyB3aXRob3V0 CiAqCXNtYWxsIGluIGEgbmV3IGJ1ZiwgZWxzZSBOVUxMCiAqLwppbmxpbmUg Y2hhciAqc3RyZW5kIChjaGFyICpiaWcsIGNoYXIgKnNtYWxsKQp7CglpbnQg YmxlbixzbGVuOwoJc2xlbj1zdHJsZW4oc21hbGwpOwoJYmxlbj1zdHJsZW4o YmlnKTsKCWlmICgoYmxlbj09MCkgfHwgKHNsZW49PTApIHx8IChibGVuIDwg c2xlbikpCgl7CgkJcmV0dXJuIE5VTEw7Cgl9CglpZiAoMCA9PSBzdHJjbXAo JmJpZ1soYmxlbi1zbGVuKV0sc21hbGwpKQoJewoJCWNoYXIgKnRlbXBidWY9 TlVMTDsKCQl0ZW1wYnVmPShjaGFyICopbWFsbG9jKGJsZW4tc2xlbisxKTsK CQlpZiAodGVtcGJ1Zj09TlVMTCkKCQl7CgkJCXBlcnJvcigibWFsbG9jIik7 CgkJCWV4aXQoRVhJVF9GQUlMVVJFKTsKCQl9CgkJYnplcm8odGVtcGJ1Ziwo Ymxlbi1zbGVuKzEpKTsKCQlzdHJuY3B5KHRlbXBidWYsIGJpZywgYmxlbi1z bGVuKTsKCQlyZXR1cm4gdGVtcGJ1ZjsKCX0KCXJldHVybiBOVUxMOwp9Cgov KgogKglpZiBiaWcgc3RhcnRzIHdpdGggc21hbGwsIHJldHVybiB0aGUgY2hh ciBhZnRlciAKICoJdGhlIGxhc3QgY2hhciBpbiBzbWFsbCBmcm9tIGJpZy4g YWhlbS4KICovCmlubGluZSBjaGFyICpzdHJiZWcgKGNoYXIgKmJpZywgY2hh ciAqc21hbGwpCnsKCWlmIChzdHJsZW4oYmlnKSA8PSBzdHJsZW4oc21hbGwp KQoJCXJldHVybiBOVUxMOwoJaWYgKDA9PXN0cm5jbXAoYmlnLHNtYWxsLHN0 cmxlbihzbWFsbCkpKQoJCXJldHVybiAoYmlnK3N0cmxlbihzbWFsbCkpOwoJ cmV0dXJuIE5VTEw7Cn0KCi8qCiAqCWlmIGFueSBjaGFycyBpbiBzdHJpbmcg ZG9udCBhcHBlYXIgaW4gQUxMT1dBQkxFCiAqCXRoZW4gZmFpbCAocmV0dXJu IDApCiAqLwppbnQgdmFsaWRfY2hhcnMoY2hhciAqc3RyaW5nKQp7CglpbnQg Y291bnQ7CglpZiAoKGNvdW50PXN0cnNwbihzdHJpbmcsQUxMT1dBQkxFKSk9 PXN0cmxlbihzdHJpbmcpKQoJCXJldHVybiAxOwoJZWxzZQoJewoJCWZwcmlu dGYgKHN0ZGVyciwgImludmFsaWQgY2hhcmFjdGVycyBpbiBzY3AgY29tbWFu ZCFcbiIpOwoJCWZwcmludGYgKHN0ZGVyciwgImhlcmU6JXNcbiIsc3RyaW5n K2NvdW50KTsKCQlmcHJpbnRmIChzdGRlcnIsICJ0cnkgdXNpbmcgYSB3aWxk Y2FyZCB0byBtYXRjaCB0aGlzIGZpbGUvZGlyZWN0b3J5XG4iKTsKCQlyZXR1 cm4gMDsKCX0KfQoKLyoKICogcmV0cmlldmVzIHVzZXJuYW1lIGFuZCBob21l IGRpcmVjdG9yeSBmcm9tIHBhc3N3ZCBkYXRhYmFzZQogKi8KaW50IGdldF91 c2VydmFyKHZvaWQpCnsKCXN0cnVjdCBwYXNzd2QgKnVzZXJpbmZvOwoJCglp ZiAoTlVMTD09KHVzZXJpbmZvPWdldHB3dWlkKGdldHVpZCgpKSkpCgl7CgkJ c3lzbG9nIChMT0dfV0FSTklORywgIm5vIGtub3dsZWRnZSBvZiB1aWQgJWQg WyVzXSIsIGdldHVpZCgpLCBsb2dzdGFtcCgpKTsKCQlpZiAoZGVidWdsZXZl bCkKCQl7CgkJCWZwcmludGYgKHN0ZGVyciwgIm5vIGtub3dsZWRnZSBvZiB1 aWQgJWRcbiIsIGdldHVpZCgpKTsKCQkJcGVycm9yICgiZ2V0cHd1aWQiKTsK CQl9CgkJcmV0dXJuIDA7Cgl9CglpZiAoZGVidWdsZXZlbCkKCQlzeXNsb2co TE9HX0RFQlVHLCAicmV0cmlldmVkIGhvbWUgZGlyZWN0b3J5IG9mIFwiJXNc IiBmb3IgdXNlciBcIiVzXCIiLAoJCSAgICAgICB1c2VyaW5mby0+cHdfZGly LCB1c2VyaW5mby0+cHdfbmFtZSk7CglzdHJuY3B5KHVzZXJuYW1lLHVzZXJp bmZvLT5wd19uYW1lLE1BWF9VU0VSTkFNRSk7CglzdHJuY3B5KGhvbWVkaXIs dXNlcmluZm8tPnB3X2RpcixGSUxFTkFNRV9NQVgpOwoJcmV0dXJuIDE7Cn0K Cg== --mime-boundary-interchange-42122cd6 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --mime-boundary-interchange-42122cd6--