RE: generating sha256 hashes with openssl?

  • From: "Sina Bahram" <sbahram@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Mon, 23 Aug 2010 00:03:40 -0400

No, my point is that strncpy should always be used, period.

Take care,
Sina 

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx 
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Littlefield, Tyler
Sent: Sunday, August 22, 2010 11:43 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: generating sha256 hashes with openssl?

Hello Sina,
This thread turned into whether or not std::string does a strcpy, and how a 
smart pointer or something similar would solve my
problem. The code just showed that std::string -does- copy.
Much easier to write a quick POC than to dig through the internals of the stl 
for something I already know happens.
Thanks,
Ty
----- Original Message -----
From: "Sina Bahram" <sbahram@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Sunday, August 22, 2010 9:39 PM
Subject: RE: generating sha256 hashes with openssl?


> Why are you not using strncpy?
>
> Take care,
> Sina
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of 
> Littlefield, Tyler
> Sent: Sunday, August 22, 2010 11:36 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: generating sha256 hashes with openssl?
>
> I seem to have forgotten a line:
> While this isn't good coding practice, it's a great example of what 
> I'm saying...
> #include <iostream>
> #include <string>
> #include <cstring>
>
> int main(void)
> {
> char* i = new char(10);
> memset(i, 0, 10);
> strcpy(i, "hello!");
> std::string s=i;
> delete [] i;
> memset(i, 0, 10);
> std::cout << s << std::endl;
> return 0;
> }
> In short, we create an array of 10 bytes, fill it with zeros (so the 
> string is NULL terminated), assign that to a std::string, delete the 
> array and set the 10 bytes at that address back to zero. If the 
> std::string held a reference or just the address of that pointer, we 
> wouldn't see the "hello"
> being printed, because the memory where the array was was just filled 
> with zeros. The fact that it is, tells us that std::string's = 
> operator does a strcpy, or a similar copy operation.
>
> ----- Original Message -----
> From: "Littlefield, Tyler" <tyler@xxxxxxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Sunday, August 22, 2010 9:30 PM
> Subject: Re: generating sha256 hashes with openssl?
>
>
>> #include <iostream>
>> #include <string>
>> #include <cstring>
>>
>> int main(void)
>> {
>> char* i = new char(10);
>> memset(i, 0, 10);
>> strcpy(i, "hello!");
>> std::string s=i;
>> delete [] i;
>> std::cout << s << std::endl;
>> return 0;
>> }
>>
>> tyler@tangerine:~$ g++ poc.cpp
>> tyler@tangerine:~$ ./a.out
>> hello!
>> tyler@tangerine:~$
>> so... It -is- copying, as I said earlier.
>> the std::string manages it's own array, so it can expand and etc. A 
>> smart pointer won't do any good as it's not used after the strcpy, 
>> thus deleting it has no affect here.
>> Thanks,
>> Ty
>>
>> __________
>> View the list's information and change your settings at 
>> //www.freelists.org/list/programmingblind
>>
>
> __________
> View the list's information and change your settings at 
> //www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at 
> //www.freelists.org/list/programmingblind
> 

__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: