Это предупреждение печатается компилятором C (файл crypt_r.go
включает встроенный код на языке C), чтобы предупредить автора / пользователей о том, что код содержит потенциальную проблему. В этом случае предупреждение можно безопасно проигнорировать, но если вы хотите, чтобы оно было исправлено, лучше всего поднять PR / проблему в соответствующем репозитории .
warning 'strncpy' specified bound depends on the length of the source argument
означает, что это плохая практика - основывать длину копии строки на длине источника; если вы сделаете это, а источник будет длиннее, чем целевой буфер, то у вас переполнение буфера, что плохо! Однако в этом случае целевой буфер создается в строке выше strncpy
, поэтому вряд ли это будет проблемой (если по какой-то причине распределение не завершится неудачно).
Подобные вещи могут вызывать реальные проблемы в приложениях, написанных на C (и многих других языках); к счастью, go защищает вас (вместо того, чтобы перезаписывать буфер, он будет блокировать c), если вы не используете небезопасный пакет (или не включите C код!).