לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #3  
ישן 19-05-2007, 21:21
  סאשה הסוס סאשה הסוס אינו מחובר  
 
חבר מתאריך: 14.07.06
הודעות: 1,070
אתה רואה שכתוב כאן שהיא מקצה מקום?
בתגובה להודעה מספר 1 שנכתבה על ידי fcf שמתחילה ב "הפונקצייה strcat"

DESCRIPTION

The strcat() and strncat() functions append a copy of the null-terminated
string append to the end of the null-terminated string s, then add a ter-
minating `\0'. The string s must have sufficient space to hold the
result.

אני רואה שכתוב שדרוש שיהיה מספיק מקום. כנראה היא לא מקצה מקום, אם דרוש לה
שיהיה מקום. אם תחשוב על זה, תבין שזה גם הגיוני. איך היא יכולה להקצות מקום לסוף
מחרוזת קיימת? אולי אין שם מקום. היא גם לא יכולה לעשות realloc למקום חדש, כי זה
ישבור מצביעים קיימים. מסקנה: היא לא מקצה מקום.

בנוסף, כתוב שם עוד משהו חשוב בשבילך:
SECURITY CONSIDERATIONS


The strcat() function is easily misused in a manner which enables mali-
cious users to arbitrarily change a running program's functionality
through a buffer overflow attack. (See the FSA.)

Avoid using strcat(). Instead, use strncat() or strlcat() and ensure
that no more characters are copied to the destination buffer than it can
hold.

Note that strncat() can also be problematic. It may be a security con-
cern for a string to be truncated at all. Since the truncated string
will not be as long as the original, it may refer to a completely differ-
ent resource and usage of the truncated resource could result in very
incorrect behavior. Example:

קוד PHP:
 void
     foo
(const char *arbitrary_string)
     {
             
char onstack[8] = "";

     
#if defined(BAD)
             /*
              * This first strcat is bad behavior.  Do not use strcat!
              */
             
(void)strcat(onstackarbitrary_string);        /* BAD! */
     #elif defined(BETTER)
             /*
              * The following two lines demonstrate better use of
              * strncat().
              */
             
(void)strncat(onstackarbitrary_string,
                 
sizeof(onstack) - strlen(onstack) - 1);
     
#elif defined(BEST)
             /*
              * These lines are even more robust due to testing for
              * truncation.
              */
             
if (strlen(arbitrary_string) + >
                 
sizeof(onstack) - strlen(onstack))
                     
err(1"onstack would be truncated");
             (
void)strncat(onstackarbitrary_string,
                 
sizeof(onstack) - strlen(onstack) - 1);
     
#endif
     



תלמד: google is your friend. בכל פעם שמעניינת אותך פונקציית C כלשהי, חפש בגוגל "man funcname".
_____________________________________
סאשה הסוס, סוכן אוסינט.‏

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:56

הדף נוצר ב 0.05 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2026 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר