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;
}