ext/curb_postfield.c in curb-0.7.3 vs ext/curb_postfield.c in curb-0.7.4

- old
+ new

@@ -426,13 +426,13 @@ VALUE result = Qnil; Data_Get_Struct(self, ruby_curl_postfield, rbcpf); if ((rbcpf->local_file == Qnil) && (rbcpf->remote_file == Qnil)) { - if (rbcpf->name != Qnil) { + if (rbcpf->name != Qnil && rb_type(rbcpf->name) == T_STRING) { - char *tmpchrs = curl_escape(StringValuePtr(rbcpf->name), RSTRING_LEN(StringValue(rbcpf->name))); + char *tmpchrs = curl_escape(StringValuePtr(rbcpf->name), RSTRING_LEN(rbcpf->name)); if (!tmpchrs) { rb_raise(eCurlErrInvalidPostField, "Failed to url-encode name `%s'", tmpchrs); } else { VALUE tmpcontent = Qnil; @@ -469,10 +469,10 @@ } } else { rb_raise(eCurlErrInvalidPostField, "Cannot convert unnamed field to string %s:%d", __FILE__, __LINE__); } } else { - rb_raise(eCurlErrInvalidPostField, "Cannot convert non-content field to string %s:%d", __FILE__, __LINE__); + rb_raise(eCurlErrInvalidPostField, "Local file and remote file are both nil %s:%d", __FILE__, __LINE__); } return result; }