libnbd-release-notes-1.24(1) LIBNBD libnbd-release-notes-1.24(1)

libnbd-release-notes-1.24 - یادداشت‌های انتشار libnbd نسخه ۱.۲۴

این سند یادداشت‌های انتشار نسخه پایدار libnbd ۱.۲۴ است. این یادداشت‌ها تغییرات عمده پس از نسخه ۱.۲۲ را تشریح می‌کنند.

نسخه libnbd 1.24.0 در تاریخ 16 December 2025 (۲۵ آذر ۱۴۰۴) منتشر شد.

در تابع nbd_connect_uri(3) و چندین ابزار libnbd (برای نمونه nbdinfo(1))، هنگام استفاده از URIهای nbd+ssh://، فیلد hostname به میزان کافی پاک‌سازی و اعتبارسنجی نمی‌شد. پیامد این امر آن بود که یک مهاجم با توانایی کنترل این فیلد در URI می‌توانست دستوراتی را از طریق libnbd اجرا کند. این آسیب‌پذیری بر نسخه‌های libnbd ≥ 1.22 تأثیر می‌گذاشت. برای اطلاعات بیشتر ببینید: https://lists.libguestfs.org/archives/list/guestfs@lists.libguestfs.org/thread/YZMBF3SJRWTRVT5L3KWSNHITFTRMQNTT

اگر مشکلی امنیتی یافتید، لطفاً سند SECURITY را در کد منبع مطالعه کنید (به صورت برخط در این نشانی: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). برای اطلاع از مسائل امنیتی پیشین در libnbd، به libnbd-security(3) مراجعه کنید.

تابع جدید nbd_get_version_extra(3) رشته ارسال‌شده به "./configure --with-extra="..."" را برمی‌گرداند. این قابلیت برای استفاده بسته‌بندهای توزیع‌ها (downstream packagers) در نظر گرفته شده است.

تابع جدید nbd_get_handle_size(3) که تخمینی از اندازه دستگیره (handle) را به بایت برمی‌گرداند. این تابع برای استفاده زبان‌های دارای بازیافت حافظه (garbage collection) به عنوان راهنمایی جهت زمان آزادسازی دستگیره در نظر گرفته شده است.

توابع جدید nbd_get_tls_priority(3) و nbd_set_tls_priority(3) که به شما امکان می‌دهند رشته اولویت TLS سیستم را به طور موقت بازنویسی (override) کنید.

رابط جدید nbd_set_uri_allow_tls_priority(3) که امکان فعال‌سازی ویژگی جدید "?tls-priority=PRIORITY" را در URIهای NBD فراهم می‌کند (این ویژگی به صورت پیش‌فرض غیرفعال است).

در nbd_connect_uri(3) برای URIهای nbd+ssh://، پارامترهای پرس‌وجوی اضافی "nbd-port" و "tls-username" به شما اجازه می‌دهند به طور مجزا پورت و نام کاربری NBD TLS و SSH را کنترل کنید. پارامتر پرس‌وجوی جدید "compress=true" به شما امکان می‌دهد فشرده‌سازی SSH را فعال نمایید.

همچنین در nbd_connect_uri، پارامتر جدید "tls-priority=PRIORITY" امکان بازنویسی رشته اولویت TLS را فراهم می‌آورد (اما این ویژگی به طور پیش‌فرض فعال نیست، بخش پیشین را ببینید).

رمزها و گواهی‌های رمزنگاری پسا-کوانتومی (PQC) برای اتصالات TLS اکنون به طور کامل پشتیبانی می‌شوند. به عنوان بخشی از این تغییر، اکنون چندین گواهی کلاینت می‌تواند توسط کتابخانه بارگذاری شود. (با تشکر از Dan Berrange).

ابزارهای جدید nbddiscard(1) و nbdzero(1) که می‌توان از آن‌ها برای آزادسازی (trim/discard) یا صفر کردن بخشی یا تمام یک دیسک NBD استفاده کرد (ویژگی‌های اضافی توسط Eric Blake).

ویژگی جدید --blkhash در nbdcopy(1). این ویژگی می‌تواند blkhash (مشابه یک چک‌سام) تصویر دیسک را در حین کپی شدن محاسبه کند (Nir Soffer, Vera Wu).

ابزار nbdcopy اکنون هنگام اجرا در حالت همگام (synchronous)، از گزینه‌های --destination-is-zero و --allocated پیروی می‌کند (Nir Soffer).

اتصال‌های OCaml اکنون "NBD.Buffer.is_zero" را پیاده‌سازی می‌کنند.

اتصال‌های OCaml اکنون تخمین بهتری از اندازه دستگیره libnbd را در اختیار بازیافت حافظه قرار می‌دهند که — دست‌کم در تئوری — به تصمیم‌گیری بهتر در زمان آزادسازی دستگیره کمک می‌کند (با تشکر از Kit-ty-kate).

اتصال‌های پایتون اندیس‌گذاری و برش (slicing) شیء "nbd.Buffer" را پیاده‌سازی کرده‌اند.

بهبود تبدیل خودکار مستندات POD به مستندات Rust. نشانه‌گذاری‌هایی که پیش از این به هم ریخته می‌شدند، اکنون به درستی تبدیل می‌شوند.

بهبود آزمون‌های گزینه‌های --allocated و --destination-is-zero در nbdcopy.

هنگام اجرای آزمون‌های libnbd روی سامانه پرونده ZFS، چندین آزمون مردود می‌شدند. اکنون از این آزمون‌ها صرف‌نظر می‌شود (با تشکر از Arsen Arsenović, Eric Blake).

ابزار nbdcopy اکنون در صورت شکست فراخوان سیستمی لینوکس sync_file_range(2) یک خطای قطعی صادر می‌کند. این اتفاق می‌تواند به دلیل خطاهای خاص ورودی/خروجی دستگاه رخ دهد (با تشکر از Eric Sandeen, Dave Chinner).

در macOS و Linux، اندازه بافر سوکت دامین یونیکس برای بهبود کارایی تنظیم شد (Nir Soffer).

رفع چندین اشتباه تایپی و املایی در مستندات (Eric Blake).

صفحه راهنمای جدید libnbd-python(3) که مقدمه‌ای بر رابط برنامه‌نویسی پایتون ارائه می‌دهد. این اطلاعات پیش از این در چند جای مختلف پراکنده بود.

گزینه "./configure --with-extra="..."" می‌تواند توسط بسته‌بندهای توزیع‌ها برای افزودن اطلاعات اضافی به خروجی --version ابزارها (مانند نسخه بسته توزیع) استفاده شود.

رنگی‌سازی و بهبود خروجی "./configure" در صورت استفاده در ترمینال.

کپی توابع جدید بردار (vector) و رشته از nbdkit، شامل "vector_uniq", "vector_append_array", "vector_insert_array", "vector_remove_range", "string_append_format".

اصلاح رفتار تخصیص حافظه در کتابخانه بردار داخلی، که باید در برخی شرایط مصرف حافظه را کاهش دهد (Eric Blake).

libnbd(3).

Copyright Red Hat

این کتابخانه نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی کمتر گنو (LGPL) منتشرشده توسط بنیاد نرم‌افزارهای آزاد بازتوزیع کرده یا تغییر دهید؛ چه نسخه ۲ مجوز، و یا (به انتخاب خودتان) هر نسخه بعدی.

این کتابخانه با این امید توزیع شده است که سودمند باشد، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی تجاری بودن یا تناسب برای هدفی معین. برای جزئیات بیشتر به مجوز عمومی همگانی کمتر گنو مراجعه کنید.

شما باید همراه با این کتابخانه یک نسخه از مجوز عمومی همگانی کمتر گنو را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر در بنیاد نرم‌افزارهای آزاد مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

2026-07-16 libnbd-1.24.3