Issue #11675 has been reported by Feifan Zhou.

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

* Author: Feifan Zhou
* Status: Open
* 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/