Bug 16312

Summary: Пароль прокси надо вводить руками. Warnings при компиляции
Product: Sisyphus Reporter: Sergey Shilov <hsvhome>
Component: netcatAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: evg, glebfm, ldv, mike, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Исходный пакет с приложенным патчем netcat-4.0.20061122-alt-proxy_pass-and-typecast.patch none

Description Sergey Shilov 2008-07-08 15:18:22 MSD
Created attachment 2697 [details]
Исходный пакет с приложенным патчем  netcat-4.0.20061122-alt-proxy_pass-and-typecast.patch

При необходимости авторизоваться на прокси спрашивается пароль.
Способа автоматизации - нет.
Если пользовать ~/.ssh/config для автовхода через прокси, то было бы неплохо иметь возможность задать пароль через переменные окружения или командную строку.
Во вложении реализовано второе.
Т.е.-Р proxy_username[:proxy_password]
Что и отражено в коде и странице руководства.
Попутно причесан код на предмет Warnings.
Comment 1 Dmitry V. Levin 2008-07-09 17:52:14 MSD
(In reply to comment #0)
> Created an attachment (id=2697) [details]
> Исходный пакет с приложенным патчем  netcat-4.0.20061122-alt-proxy_pass-and-typecast.patch

Спасибо.  На будущее просьба прилагать только патч, без всего остального исходного пакета.

> При необходимости авторизоваться на прокси спрашивается пароль.
> Способа автоматизации - нет.
> Если пользовать ~/.ssh/config для автовхода через прокси, то было бы неплохо иметь
> возможность задать пароль через переменные окружения или командную строку.
> Во вложении реализовано второе.
> Т.е.-Р proxy_username[:proxy_password]
> Что и отражено в коде и странице руководства.

OK

> Попутно причесан код на предмет Warnings.

Эта новая причёска меня немного позабавила.
Comment 2 Sergey Shilov 2008-07-09 19:00:58 MSD
> Спасибо.  На будущее просьба прилагать только патч, без всего остального
> исходного пакета.
ОК.
Если правка требуется в спеке (например в данном пакете нет Requires/BuildRequires) присылать патч к спеку?

> Эта новая причёска меня немного позабавила.
:-)
Если уж в код лезть то ... уж больно несимпатичен был вывод компилятора всего для 2х модулей.  
Да и код сыроват. Явно через valgrind не гонялся (есть strdup и нету free). 
Мелочи, но...
Comment 3 Dmitry V. Levin 2008-07-09 19:11:59 MSD
(In reply to comment #2)
> > Спасибо.  На будущее просьба прилагать только патч, без всего остального
> > исходного пакета.
> ОК.
> Если правка требуется в спеке (например в данном пакете нет Requires/BuildRequires)
> присылать патч к спеку?

Если нужно, то лучше патч.
Хотя зачем в данном случае Requires/BuildRequires?

> > Эта новая причёска меня немного позабавила.
> :-)

Например, изменение
-       strncat(sun.sun_path, path, sizeof(sun.sun_path));
+       strncat(sun.sun_path, path, strlen(path));

> Если уж в код лезть то ... уж больно несимпатичен был вывод компилятора всего
> для 2х модулей.  
> Да и код сыроват. Явно через valgrind не гонялся (есть strdup и нету free). 
> Мелочи, но...

Надо проверять upstream, возможно, это уже не так сыро как было раньше.
Comment 4 Dmitry V. Levin 2008-07-09 20:58:02 MSD
Патч ваш as is я прикладывать не стал, но всё равно спасибо.

Fixed in 4.0.20061122-alt2
Comment 5 Sergey Shilov 2008-07-10 00:24:36 MSD
> Хотя зачем в данном случае Requires/BuildRequires?
Возможно и не нужно, но
rpm -qf /usr/include/stdlib.h
glibc-devel-2.5.1-alt5
...
Да и gcc не во всякую систему "по умолчанию" ставится.

С учетом 
if (strlen(path) >= sizeof(sun.sun_path))
  errx...
> -       strncat(sun.sun_path, path, sizeof(sun.sun_path));
> +       strncat(sun.sun_path, path, strlen(path));
правка безвредная (равно как и бесполезная), однако 
call to __builtin___strncat_chk might overflow destination buffer
устраняющая.

Я просто постарался подчистить в меру своего розумения:
netcat.c: In function 'udptest':
netcat.c:865: warning: ignoring return value of 'write', declared with attribute warn_unused_result
socks.c: In function 'socks_connect':
socks.c:271: warning: pointer targets in passing argument 1 of '__builtin___snprintf_chk' differ in signedness
socks.c:275: warning: pointer targets in passing argument 1 of '__builtin___snprintf_chk' differ in signedness
socks.c:281: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:291: warning: pointer targets in passing argument 1 of '__builtin___snprintf_chk' differ in signedness
socks.c:294: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:297: warning: pointer targets in passing argument 1 of '__builtin___snprintf_chk' differ in signedness
socks.c:301: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:311: warning: pointer targets in passing argument 2 of 'proxy_read_line' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:313: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:320: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
socks.c:321: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
socks.c:326: warning: pointer targets in passing argument 2 of 'proxy_read_line' differ in signedness
netcat.c: In function 'unix_listen':
netcat.c:554: warning: call to __builtin___strncat_chk might overflow destination buffer
netcat.c: In function 'unix_connect':
netcat.c:526: warning: call to __builtin___strncat_chk might overflow destination buffer


Решать конечно же мантейнеру.
Большое спасибо за общение и быструю реакцию.
Comment 6 Dmitry V. Levin 2008-07-10 01:37:47 MSD
(In reply to comment #5)
> > Хотя зачем в данном случае Requires/BuildRequires?
> Возможно и не нужно, но
> rpm -qf /usr/include/stdlib.h
> glibc-devel-2.5.1-alt5
> ...
> Да и gcc не во всякую систему "по умолчанию" ставится.

Там, где собирают пакеты, все эти пакеты установлены.
У нас не принято добавлять в зависимости пакеты, которые необходимы для работы rpmbuild и, соответственно, вытягиваются по зависимостям rpmbuild.

> С учетом 
> if (strlen(path) >= sizeof(sun.sun_path))
>   errx...
> > -       strncat(sun.sun_path, path, sizeof(sun.sun_path));
> > +       strncat(sun.sun_path, path, strlen(path));
> правка безвредная (равно как и бесполезная), однако 
> call to __builtin___strncat_chk might overflow destination buffer
> устраняющая.

тогда почему не написать просто
strcpy(sun.sun_path, path)
?
Comment 7 Sergey Shilov 2008-07-10 11:05:24 MSD
> У нас не принято добавлять в зависимости пакеты, которые необходимы для
> работы rpmbuild и, соответственно, вытягиваются по зависимостям rpmbuild.
Понятно.

> тогда почему не написать просто
> strcpy(sun.sun_path, path)
Кстати да.

Наверное неплохо было бы еще в man ssh_config исправить 
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
на
ProxyCommand netcat -X connect -x 192.0.2.0:8080 %h %p