[ruby-core:71477] [Ruby trunk - Bug #11675] [Feedback] String hash key may cause Segfault

From: nobu@...
Date: 2015-11-13 05:39:44 UTC
List: ruby-core #71477
Issue #11675 has been updated by Nobuyoshi Nakada.

Status changed from Open to Feedback

2.2.0 is outdated.
Could you try with 2.2.3, or stable snapshot?

----------------------------------------
Bug #11675: String hash key may cause Segfault
https://bugs.ruby-lang.org/issues/11675#change-54842

* Author: Feifan Zhou
* Status: Feedback
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Using the [Google API Ruby Client](https://github.com/google/google-api-ruby-client), at least one method call will segfault when called with a hash with String keys (it throws an app-relevant exception when those same keys are symbols). Stack trace is attached.

~~~
def create_calendar(calendar_name)
      entry = { 'description' => calendar_name }
      created_calendar = calendar.insert_calendar(entry)  # Segfault here
      # ….
end

private
def calendar
    @calendar ||= ::Google::Apis::CalendarV3::CalendarService.new.tap { |cal| cal.authorization = authorization }
end

def authorization
    auth = ::Google::APIClient::Storage.new(credentials).authorize

    if auth.nil? || (auth.expired? && auth.refresh_token.nil?)
      p "======= Auth nil, can't refresh"
      # TODO: Handle case
      # https://developers.google.com/google-apps/calendar/quickstart/ruby
    end
    auth
end
~~~

---Files--------------------------------
segfault.txt (197 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next