Use memcpy instead of strndup() as we know the length of the string.
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 28 Jan 2011 09:17:54 +0000 (09:17 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 28 Jan 2011 09:17:54 +0000 (09:17 +0000)
Also fixes compilation on Mac OS X where strndup() is not defined.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@56341 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore_x/xlib/ecore_x_randr_12.c

index 3607980..1aee15d 100644 (file)
@@ -406,11 +406,13 @@ ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode)
                   ret->vTotal = res->modes[i].vTotal;
                   ret->name = NULL;
                   ret->nameLength = 0;
-                  if (res->modes[i].nameLength > 0) 
+                  if (res->modes[i].nameLength > 0)
                     {
                        ret->nameLength = res->modes[i].nameLength;
-                       ret->name = strndup(res->modes[i].name, 
-                                           res->modes[i].nameLength);
+                       ret->name = malloc(res->modes[i].nameLength + 1);
+                       if (ret->name)
+                         memcpy(ret->name, res->modes[i].name,
+                                res->modes[i].nameLength + 1);
                     }
                   ret->modeFlags = res->modes[i].modeFlags;
                   break;