/ বিন / শ: `কিছু-ফাংশন 'এর জন্য ফাংশন সংজ্ঞা আমদানি করার সময় ত্রুটি


14

CVE-2014-6271 সুরক্ষা সমস্যার জন্য ব্যাশ আপডেট করার সময় আমি এই ত্রুটির মুখোমুখি হয়েছি:

# yum update bash
Running transaction (shutdown inhibited)
Updating   : bash-4.2.47-4.fc20.x86_64
/bin/sh: error importing function definition for `some-function'

উত্তর:


17

[প্রথম মন্তব্যটির পরে সম্পাদিত: @ চেপনার - ধন্যবাদ!]

/ বিন / বাশ ফাংশন নামের হাইফেনকে অনুমতি দেয়, / বিন / শ (বোর্ন শেল) দেয় না। এখানে, আক্রমণাত্মক "কিছু-ফাংশন" বাশ দ্বারা রফতানি করা হয়েছিল, এবং ব্যাশকে ইয়াম নামে ডাকা হয়েছে যার নাম / বিন / এস বলা হয়েছে যা উপরের ত্রুটিটি জানিয়েছিল।

ফিক্স: হাইফেন না থাকার জন্য শেল ফাংশনগুলির নাম পরিবর্তন করুন

ম্যান বাশ বলেছেন যে ব্যাশ শনাক্তকারীদের সমন্বয়ে এটি থাকতে পারে: "কেবলমাত্র বর্ণানুক্রমিক অক্ষর এবং আন্ডারস্কোরগুলির মধ্যে"

/ বিন / শ ত্রুটিটি আরও স্পষ্ট:

some-function () { :; }

sh: 'কিছু-ফাংশন': কোনও বৈধ শনাক্তকারী নয়


মনে রাখবেন যে bashকোনও প্যারামিটারের নাম নয়, একটি ফাংশন নামে হাইফেন অনুমোদিত allowed
— চিপনার

@ চেপনার একটি আন্ডারস্কোর সম্পর্কে কী? একটি ফাংশন নাম এবং পরামিতি নাম একটি আন্ডারস্কোর অনুমোদিত?
— BH2017

আমার সিস্টেমে বাশ 4 ফাংশনটির নামগুলিকে হাইফেন রাখার অনুমতি দেয় তবে ব্যাশ 3 দেয় না - আমি ধরে নিই ওপির সিস্টেমে / বিন / শ বশ 3, এবং / বিন / বাশ 4
— মার্ক ফক্স

2

পরিবর্তন করুন / থেকে ফাংশনের নাম ত্রুটিমুক্ত "foo-bar"করার"foo_bar"

এটি নামকরণ কনভেনশন যা বাশ ঠিক আছে, যেখানে শ নেই।

"_" (আন্ডারস্কোর) দিয়ে "-" (হাইফেন / ড্যাশ / বিয়োগ) প্রতিস্থাপন করুন এবং ত্রুটিটি স্থির হয়ে যায় এবং কোড বাশ এবং শ উভয় ক্ষেত্রে কাজ করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.